2011-01-23 22 views
7

SSTables圧縮(メジャーとマイナー)の境界はどこにあり、効果がなくなるのですか?Cassandraクラスタの1ノードあたりのデータ量はどれくらいですか?

私は500G SSTablesの主要な圧縮カップルを持っていて、最終的なSSTableは1TB以上になります - これは、1つのノードがこの大きなデータセットを "書き直す"ために有効でしょうか?

これはHDDで約1日かかることがあり、倍のサイズのスペースが必要なので、これにはベストプラクティスがありますか?

答えて

9

1 TBは、単一のノードが処理できるデータ量に合理的な限界であるが、実際には、ノードは、すべてのデータのサイズ、操作のみ速度によって制限されません。

ノードには80 GBのデータしかないかもしれませんが、ランダムな読み込みで絶対にポンドして、たくさんのRAMがない場合は、その数のリクエストを合理的なレート。同様に、ノードには10 TBのデータがあるかもしれませんが、読んだり読んだりしたり、データが熱くなって(効果的にキャッシュできるように)、データの一部が残っていてもうまくいくでしょう。

圧縮は確かに1つのノード上の大量のデータを持っているときに注意すべき問題であるが、心に留めておくべきいくつかの事柄があります:

まず、「最大」コンパクション、もの結果は単一の巨大なSSTableであり、まれにしか発生せず、ノード上のデータ量が増えるにつれてさらに大きくなります。 (トップレベルの圧縮が発生する前に発生する必要があるマイナーコンパクションの数は、既に実行したトップレベルのコンパクションの数によって指数関数的に増加します)。

第2に、ノードは依然としてリクエストを処理できます遅くなります。

第3に、レプリケーションファクタが1以上で、整合性レベルALLで読んでいない場合、他のレプリカは読取り要求にすばやく応答できるため、クライアントからの待ち時間に大きな違いは見られません視点。

最後に、より大きなデータセットで役立つplans to improve the compaction strategyがあります。

+2

私はあなたがおそらく多くの上書きをしていないデータのTBを持っている場合、複数のsstablesはブルームフィルタのために読み込みを遅くするつもりされていないことを追加します。 – jbellis

関連する問題