違いは何ですか:
a)nodetool rebuild
b)nodetool repair [-pr]
言い換えれば、それぞれのコマンドは正確に何をしますか?
nodetool再構築:ブートストラッププロセス(クラスターに新しいノードを追加する場合)に似ていますが、データセンター用です。ここでのプロセスは、主に、すでにライブのノードから新しいノードへのストリーミングです(新しいノードは空です)。したがって、非常に高速なノードのキー範囲を定義した後、残りはコピー操作と見なすことができます。
nodetool repair -pr:はコピー操作ではなく、修復中のノードは空ではなく、すでにデータが含まれていますが、レプリケーション係数が1より大きい場合、そのデータを残りのレプリカのデータと比較する必要があります。違いは修正されます。このプロセスには多くのストリーミングが含まれますが、データストリーミングではありません。修復されるノードは、両方のノードが持つ情報が同じであるかどうかを確認するために、マークルツリー(基本的にはハッシュツリー)を要求します。違いがあるデータのセクションのフルストリーム(したがって、すべてのレプリカが同じデータを持ちます)。検証前にデータ全体をストリーミングするよりも高速な場合、このハッシュをストリーミングします。これは、あちこちの違いを除いて、ほとんどのデータが両方のノードで同じであるという仮定の下で機能します。このプロセスでは、データベースから削除するときに作成されたトゥームストーンも削除され、新しい「チェックポイント」のように定義されます。その後、データの削除時に新しいトゥームストーンが作成されますが、古いトゥームストーンは使用されなくなります。
それが役に立てば幸い!