You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by Apache Wiki <wi...@apache.org> on 2010/06/09 06:53:31 UTC

[Cassandra Wiki] Update of "AntiEntropy_JP" by Shinya Kawanaka

Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Cassandra Wiki" for change notification.

The "AntiEntropy_JP" page has been changed by Shinya Kawanaka.
http://wiki.apache.org/cassandra/AntiEntropy_JP

--------------------------------------------------

New page:
!AntiEntropy とは、存在する(ことになっている)データのレプリカを全て比較し、全てのレプリカを最新のバージョンに置き換えることを言います。

Cassandra の実装は [[ArchitectureAntiEntropy|よりリッチなデータモデルをサポートする変更(ができること)]] を持った Dynamo に基づいています。
[[http://www.allthingsdistributed.com/2007/10/amazons_dynamo.html|Amazon's Dynamo]] の 4.7 節から引用します。

  . To detect the inconsistencies between replicas faster and to minimize the amount of transferred data, Dynamo uses Merkle trees. A Merkle tree is a hash tree where leaves are hashes of the values of  individual keys. Parent nodes higher in the tree are hashes of their respective  children. The principal advantage of Merkle tree is that each branch of the tree  can be checked independently without requiring nodes to download the entire [...] data set.
  . (レプリカ間の不整合をより早く検知しデータ転送量を最小化するために、Dynamo は Merkle 木を使っています。Merkel 木とは、ハッシュ木であって、葉が各キーの値のハッシュ値になっているもののことです。より上位の親ノードは、その子供のそれぞれのハッシュ値になっています。Merkle 木の原理的なメリットは、枝が全てのデータセットをダウンロードせずに独立してチェック出来ることです。)

Cassandra の anti-entropy の実装の重要な差異は、Merkle 木が column family ごとに作成され、それらは近隣のノードに (Merkle 木を?) 送るのにかかる時間以上にはメンテナンスされないことです。代わりに、木はメジャーコンパクションの間のデータセットのスナップショットになっていることが保証されます。すなわち、超過データはネットワークを経由して送られるかも知れませんが、これは local disk の IO をセーブします。これは非常に大きなデータセットについては好ましいことです。