2013-07-11 12 views
15

の違いは何ですか:カサンドラノード - v。修理

A)nodetool rebuild

B)つまりnodetool repair [-pr]

、正確にそれぞれのコマンドは何をしますか?

+0

http://www.datastax.com/documentation/cassandra/1.2/index.html#cassandra/tools/toolsNodetool_r.htmlによると、「修復」は新しいデータセンターを呼び出すために使用され、「修復」は既存のデータノード間の整合性を達成する – manuzhang

答えて

21

nodetool rebuild:ブートストラッププロセス(クラスタに新しいノードを追加する場合)と同じですが、データセンター用です。ここでのプロセスは、主に、すでに稼働しているノードから新しいノードへのストリーミングです(新しいノードは空です)。したがって、非常に高速なノードのキー範囲を定義した後は、残りをコピー操作と見なすことができます。

nodetool repair -pr:はコピー操作ではなく、修復中のノードは空ではなく、既にデータを含んでいますが、複製係数が1より大きい場合は残りのデータと比較する必要があります。違いがある場合は修正されます。プロセスには多くのストリーミングが含まれますが、データストリーミングは行われません。修復されているノードは、両方のノードの情報が同じかどうかを確認するために、Merkleツリー(基本的にハッシュのツリー)を要求します。差異があるデータのセクションのフルストリーム(すべてのレプリカが同じデータを持つため)検証の前にデータ全体をストリーミングするよりも早ければ、このハッシュをストリーミングすると、ここではいくつかの違いを除いて、ほとんどのデータが両方のノードで同じになるという前提で動作します。このプロセスでは、データベースから削除するときに作成された墓石も削除され、新しい「チェックポイント」のように定義された後、データの削除時に新しい墓石が作成されますが、古い墓石はもはや使用されません。

希望すると助かります!

関連する問題