0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【Cassandra】特徴整理

Last updated at Posted at 2019-10-22

Cassandraの特徴について

一般的に言われていること... ただし、表現?とか若干、主観が入ってるかもしれない...。

パフォーマンス

・書き込み操作について、非常に高いスループット
 ・特に書き込み ( 追加書き込み ) で非常に高いスループット
 ・データ更新・削除については、実際にはディスク上のデータの置換えをしないようにすることで、オーバヘッドを回避
・読取り操作について、それなりのスループット
 ・ハッシュに基づくデータ検索なので、キー等価検索の性能は高い。
 ・シーケンシャルアクセス的な読み取り操作には向いていない。

※CassandraのI/OはLSM-treeのバリエーションなので、パフォーマンスにはそのメリデメが反映される。

拡張性、弾力性 ( Elasticity )

・マスターレスのアーキテクチャにより、水平方向での直線的な拡張性を提供
 ・ボトルネックとなる特定の役割を果たすノードが存在しない。( マスター/スレーブのようなアーキテクチャではない。 )
  ・ノード数を2倍にするとスループットが倍増 ( ただし、データが適切に分散されることが前提 = 適切なモデリング )
・拡張作業が容易
 ・すべてのノードがほぼ同じ設定
  ・設定ファイルのIPアドレスとかは変えないといけない...けど、あとはだいたい同じ設定にできる。
・ダウンタイムや進行中の作業の中断なく拡張可能

※オンプレでの比較、クラウドサービスとの比較ではない

高可用性

・SPOF回避
 ・( 自動的に )データを複数のノードに複製するアーキテクチャ
・障害時にフェールオーバ切替が発生なし ( システムの複雑さ低減 )
・マルチデータセンタ対応のレプリケーション

※パッチ適用やバージョンアップを業務無停止( ローリングメンテ )で実行可能なのは大きなメリット

低コスト

・比較的低コストのサーバで構成可能
 堅牢で高価なハードウェアを必要とするリレーショナルデータベースとは異なる。

※ディスクはSSD推奨
※ノード1台1台のスペックアップよりもノード追加推奨だが、商用サポートのディストリビューションの場合、ノードを増やすとライセンス費用も増える...

データ圧縮

・80%に達するデータ圧縮率
 ・ディスクのデータ量削減
 ・データ圧縮のCPUオーバーヘッドより、データ圧縮によるIO時間向上のメリットが大きい場合、読み取りと書き込みのスループットが向上

データ操作

・Cassandra Query Language( CQL )の提供
 ・なんとなくSQLに似ているので、なじみやすい。
・Relational ( RDB的 ) な操作はできない。( 本質はKVS的なものなので )
 ・テーブルの結合( JOIN )不可、参照整合性の概念なし ( クエリに合うようにテーブルを設計要 )
 ・Subquery ( 副問い合わせ )のサポートなし
・セカンダリインデックスはいちおう使用可能、ただし制約が多いし、効率悪い
・JSONサポート

※NoSQL系はRDBのように統一された規格( SQL )がないので、CQLが用意されているのは大きなメリットかと。

Consistency、トランザクション

・基本的に結果整合性 ( なので厳密なトランザクションが必要な業務には向かない。 )
 ・CassandraはDynamoDBと同様に結果整合性がベース
 ・定期的に手動メンテナンス( repair )が必要、repairするまでは整合性は保証されない。
・調整可能な整合性 ( Tunable consistency )
 ・読み取りまたは書き込み操作のレベルで整合性を調整可能
・トランザクションをサポートしない。
 ・ロールバック機構を提供していない。
 ・ロック機構を提供していない。
 ・以下の機能をサポートしているが、いろいろと制限あり。
  ・atomic batch( 複数処理を1単位として扱う )
  ・楽観的ロックのサポート CAS(軽量トランザクション)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?