そのため、ほとんどの場合非常に休止状態になりますが、月のうち数日は高バーストが必要になるアプリケーションがあります。 EC2にデプロイしているので、ほとんどの場合、1つのCassandraサーバーのみを稼働させ、バースト日にもう1つのサーバーを稼働させたい(より多くのRAMおよびCPU(最初のものよりも)は、負荷を処理するのに役立ちます。これを行うための最良の方法は何ですか?別のアプローチを取る必要がありますか?
私がやろうとしていることについてのいくつかのメモ:
私の主な質問は、レプリケーション係数2が必要なため(両方のノードにすべてのデータがあるため)、ノードにすべてのデータを共有させる方法ですが、サーバーが1つしかない場合は機能しません。 1台ではなく2台の追加サーバーを立ち上げる必要がありますか?
非常に簡単にできるようです レプリケーション係数を変更 。
これは Cassandra wiki にも記載されており、レプリケーション係数を増減するための手順を見つけることができます。
これは、これを実行できるはずであることを意味します。
私の経験では、レプリケーション係数をオンザフライで変更してもそれほどうまく機能しません:-(少なくとも私にとっては、スキーマの不一致が発生する可能性があり、修正に時間がかかります。
大声で考えているだけですが、別の可能なルートは次のようになります(タイミングを適切に変更する):
最初のCPUよりも多くのRAMおよびCPU
Cassandraは、各ノードが担当するリングの量でワークロードを効果的に分割します。リングの分割を容易にするために、2番目のノードで最初のノードの容量を2倍にするか、最初のノードと同じサイズの2つのノードを追加する方が簡単な場合があります。
ヒントされたハンドオフが残りのノードのディスクを不必要にいっぱいにするので、これはノードをドロップするときに手動のnodetool介入を必要とします。