Skip to main content

Cassandra: The Definitive Guideの6章を読んだ

Cassandra: The Definitive Guideの5章を読んだ
の続編
6章はアーキテクチャ

この章でCassandraの仕組みを理解できました


・snitch
ネットワークのトポロジーの情報を教える
これで効率的にリクエストを送ることができる

 

・データの配置
各nodeは守備範囲になってるtokenが割り当てられてる
イメージとしてはringになっていて最大から最小までのどこかをカバーするイメージ
そして、データはpartition keyからhashを計算して該当のnodeに割り当てられる

 

・トークンの確認
今回だとlast_nameが同じなら同じtokenになる

SELECT token(last_name) FROM my_keyspace.user;

 

・Replication Strategy
SimpleStrategy:一つのリングにする
NetworkTopologyStrategy:各々のデータセンターでレプリケーションする

 

・Consistency Level
QUORUM:過半数
ONE:一つ。hintは含まない
ANY:hintも含む

 

・Replica factorとConsistency Levelの違い
Replica factor:いくつのノードに書き込みを保存するか
Consistency Level:いくつのノードが成功を返したら正しいにするか

 

・Coordinator node
初回にリクエストを受けたnode
これが他のnodeに書き込み依頼を出す

 

・Hinted Handoff
Coordinator nodeが書き込み時にポストイットのようなヒントを残しておく
そして、該当のnodeが復活したときに再度書き込みを実施する

 

・light weight transaction
略してLWT
2phase commitに変わるもの

prepareを投げて
最新のデータか確認し
propsalを返却し
過半数が返却したらcommitする

 

・nodeの中
Cassandra Daemon:Memtables, Key Caches, Row Caches
Disk:commit log, SSTables, Hints

 

・commit log
クラッシュ時の回復に利用

 

・書き込みのロジック
commit logに書き込み
Memtablesに書き込み
MemtablesがいっぱいになるとSSTablesに書き込み

 

・削除
実際には削除せずにtombstoneというフラグを立てる
一定期間後にGCで消される

 

この章でCassandraの内部の仕組みを理解しましたとさ
まだまだ続くよ

関連記事:

Pocket