私はCassandraを勉強しています。私が取り組んでいるプロジェクトのためのクラスタをセットアップする過程です。この例を考えてみましょう: それぞれ200Gbのスペースを持つ5ノードのクラスタをセットアップしたとします。これは、全体で最大1000GB(1TB程度)のスペースに相当します。私のパーティションがクラスタ全体に等しく分割されていると仮定すると、ノードを簡単に追加して線形スケーラビリティを達成できます。しかし、これらの5つのノードがSSDの限界値200 GBに近づくとどうなりますか?その場合、私は5つのノードを追加することができ、今ではパーティションは10のノードに分割されます。しかし、古いノードはまだクラスタの一部であるため、データを書き込むことになります。これら5つの古いノードを「読み取り専用」にする方法はありますか?私はクラスタ全体でランダムな読み込みクエリを撃ってしまいますが、古いノードにはもう書きたくありません(200ギガバイトの上限で制限されているので)。カッサンドラクラスターのノードが限界に達するとどうなるでしょうか?
助けていただければ幸いです。ありがとうございました。
注:クエリの99%が書き込みクエリであり、読み取りに対して1%以下であると言えます。アプリはCassandraのクリックイベントを持続させる必要があります。
感謝。私はクラスタにノードを追加する場合、それがどこにあるか、古いノード内のデータが残っているだろうが、カサンドラのvノードとまともなパーティション化戦略と、新しいデータは新しいノードと古いノードに放出されることになります。私の理解では、このましたデータも取得し続けるでしょう。あなたは、ノードを追加することにより、カサンドラは、古いノードからいくつかのデータを取ると新しいものに転送した後、古いノードからこの転送されたデータを削除することを言っていますか? – Ankush92
私はトークンの範囲の一部が(噂を介して他のノードに通知されます)全体のデータロードに貢献することに割り当てられる、あなたが同じデータセンターにノードを追加しているほとんどsame.Ifを言っています。このトークン範囲に対応するデータは、その新しいノードによって保持される。したがって、古いノードでは、自分自身の負荷の一部を解放することになります。 – r005t3r
また、この新しいデータの分布は一様ではありません。しかし、* nodetoolの修復*を実行することによって、これはバランスを取ることができます。 PS。そのノドトールクリーンアップ* – r005t3r