私はどこにでもこの警告を見ましたが、このトピックに関する詳細な説明は見つかりません。カサンドラに大きなパーティションを持つのはなぜ大変ですか?
答えて
スタータ
について単一パーティション内のセル(行×列)の最大数は 20億です。
パーティションを無制限に拡張できるようにすると、最終的にこの制限にぶつかります。
理論上の制限の外には、JVMと読み取り時間に大きなパーティションが与える影響に関連する実用上の制限があります。これらの実際的な制限は、バージョンごとに絶えず増加しています。この実用的な制限は固定されていませんが、データモデル、クエリパターン、ヒープサイズ、構成によって変化し、大きすぎるものについてはまっすぐ答えを出すのが難しくなります。
2.1および3.0以前のリリースでは、読み取りと圧縮の主なコストは、column_index_size_in_kb
ごとに行をマークするインデックスをデシリアライズすることに由来します。読み込みのためにkey_cache_size_in_mb
を増やすことで、不要な直列化を防ぐことができますが、ヒープスペースを減らして古い世代を埋めることができます。列インデックスのサイズを大きくすることはできますが、読み取り時のIOコストは最悪になります。また、これらの大きなパーティションを読み込むときに、オブジェクト割り当てにおける巨大なスパイクの影響を調整するためのCMSとG1のさまざまな設定もあります。これを改善するための積極的な取り組みが行われているので、今後はボトルネックになることはありません。
修理でも、(最適な場合のシナリオでは)パーティションレベルに下がります。したがって、パーティションに常に追加され、2つのノード上のそのパーティションのハッシュが正確な時刻に比較されない場合(分散システムは本質的にこれを保証します)、一貫性を確保するためにパーティション全体をストリーミングする必要があります。インクリメンタル・リペアはこれの影響を減らすことができますが、膨大な量のデータと変動するディスクを大幅にストリーミングすると、不必要に圧縮される必要があります。
問題のあるコーナーケースやシナリオにこれを追加することはおそらく可能です。多くの場合、大きなパーティションはとなります。を読むことはできますが、それらのチューニングやコーナーケースは本当に価値がありません。カッサンドラの期待通りにデータモデルを設計するほうがよいでしょう。私は100MBを目標とすることをお勧めしますが、あなたはそれをはるかに超えることができます。 Gbsに入ると、チューニングを検討する必要があります(データモデル、ユースケースなどによって異なります)。
- 1. なぜ最大値を持つのですか?ターミナルエミュレータで256色?
- 2. 異なる列と変数を持つ大きなデータフレームのggplot_line
- 3. 大きなデータセットを持つWPFのICollectionView.filter
- 4. 大きなデータセットを持つカテゴリデータのエンコーディング
- 5. 巨大なローカル変数を持つスタックオーバーフロー?
- 6. MySQL大変大きなテーブルサイズ
- 7. カサンドラ最大の現実的なブロブサイズ
- 8. なぜ変化の変種に大きな差があるのですか?
- 9. 大きなデータを持つRealm Mobile Platform
- 10. 大きなデータソースを持つ剣道
- 11. 大きなデータセットを持つDictVectorizer
- 12. ストリーミングJson - 大きなオブジェクトを持つPushStreamContent
- 13. 大きなデータを持つLIBSVM
- 14. 大きな整数を持つrmultinom
- 15. 大きな整数リストを持つSolr
- 16. cassandraで列ファミリの大きなパーティションをトレースバックする方法
- 17. カサンドラで大きなOneToMany関連を維持する最良の方法は何ですか?
- 18. GHCはなぜそれほど大きく/大きいのですか?
- 19. ASP.net MVC大きな変数名を持つことの意義
- 20. カサンドラシステムは大きなパーティションを暗示します
- 21. 巨大な静的配列を持つC++の大きなヘッダファイル(4.5MB以上)
- 22. Node.js - Segfault:11かなり大きな配列を持つ
- 23. は、私はフォーマットの一つの大きなJSONファイルを持つ大規模なJSONファイルを解析し、パイソン
- 24. 無限に大きなキャンバスを持つには?
- 25. Spark Hive Context - パーティションと大文字のフィールド名を持つAvroテーブル
- 26. なぜ[ - UIWebView sizeThatFits:]はdocument.body.offsetHeight/Widthより大きなサイズですか?
- 27. このコードでは、1つの変数が他の変数よりも大きいのはなぜですか?
- 28. Swiftのメソッドが持つことができるパラメータの最大数は何ですか?なぜですか?
- 29. 最大ヒープサイズを大きくすると、スレッドの最大数が減少するのはなぜですか?
- 30. パーティションの最大クエリ
うわー、素晴らしい答え!私はこの1つを主演しているので、私はそれをここの開発者の一部に転送することができます。 – Aaron
@ChrisLohfinkお返事ありがとうございました!私はカッサンドラの初心者ですから、あなたの反応を理解することができますか?主な理由は次のとおりです。1)大きなパーティションを持つことは、キャッシングレイヤでは効率が悪いです。 2)大きなパーティションはノード間でデータを複製するのに非効率的である。それは正しいと思いますか? – Glide
それは良い省略バージョンyesです。私は、JVMは大きなオブジェクトで本質的に悪いと付け加えます。 –