有沒有一種方法可以控制SSTable的最大大小,例如100 MB,這樣當CF實際上有超過100MB的數據時,Cassandra會創建下一個SSTable?Cassandra控制SSTable大小
6
A
回答
6
不幸的是,答案並不那麼簡單,您的SSTables的大小將受到您的壓實策略的影響,並且沒有直接的方法來控制您的最大sstable大小。
當memtables作爲SSTables刷新到磁盤時,最初創建SSTables。這些表的大小最初取決於您的memtable設置和堆的大小(memtable_total_space_in_mb
是一個大影響者)。通常這些SSTable非常小。作爲名爲compaction的過程的一部分,SSTables合併在一起。
如果你使用尺寸分層壓實策略,你有機會擁有非常大的SSTables。當至少有min_threshold
(默認4個)大小相同的sstables組合成一個文件,使數據失效併合並密鑰時,STCS會將SSTables組合成小型壓縮。這有可能在一段時間後創建非常大的SSTables。
使用整平壓實策略有一個sstable_size_in_mb
選項,該選項控制SSTables的目標大小。一般情況下,SSTables將小於或等於此大小,除非您擁有包含大量數據的分區鍵('寬行')。
我還沒有用Date-Tiered Compaction策略做過很多實驗,但是它的工作原理類似於STCS,因爲它合併了大小相同的文件,但它按時間順序將數據保存在一起,並且具有停止壓縮的配置舊數據(max_sstable_age_days
)這可能很有趣。
關鍵是要找到最適合您數據的壓縮策略,然後調整最適合您的數據模型/環境的屬性。
您可以閱讀關於壓縮here的配置設置的更多信息,並閱讀this guide以幫助您瞭解STCS或LCS是否適合您。
相關問題
- 1. 升級cassandra中的sstable後,數據的大小是否增加?
- 2. Cassandra sstable文件名格式
- 3. 如何降低cassandra升級SSTable時間
- 4. Cassandra SSTable和內存映射文件
- 5. Cassandra SSTable跨節點的列系列
- 6. Cassandra和堆大小
- 7. Cassandra最小堆大小
- 8. Cassandra緩存大小和JVM堆大小
- 9. Cassandra訪問控制
- 10. Cassandra數據存儲大小
- 11. 控制圖像大小
- 12. 動態控制IFrame大小
- 13. 控制JVM的大小
- 14. 控制CView的大小MFC
- 15. 控制軸大小matplotlib pyplot
- 16. 段控制段的大小
- 17. 更改控制檯大小
- 18. Wpf控制大小內容?
- 19. 觸摸屏控制大小
- 20. winforms控件大小限制
- 21. 控制SKEmitterNode「區域」大小?
- 22. 控制OverlayItem的大小
- 23. 如何限制密鑰空間cassandra的最大大小?
- 24. Cassandra的最大密鑰大小
- 25. 限制查詢大小以控制事務日誌大小
- 26. 如何控制最大響應大小
- 27. 什麼使CommitLog比在Cassandra中寫入SSTable更快?
- 28. 什麼是SSTable?
- 29. 我該如何控制cassandra複製?
- 30. cassandra中的拷貝命令行大小限制
還應該補充一點:在SSTable大小方面有一個令人滿意的介質,你不希望你的SSTables太小,因爲它會創建大量的讀取數據,因爲它使得它更容易行在SSTables之間傳播。您的sstable應該多大程度上取決於您的環境和您的要求,因此調整和測試最適合您的最佳方案可能會很好。 – 2015-04-01 13:58:46
感謝您的信息。我在哪裏指定'sstable_size_in_mb'?我試圖把它放在conf/cassandra.yaml中的'sstable_size_in_mb:40',但cassandra啓動失敗,出現錯誤 org.apache.cassandra.exceptions.ConfigurationException:無效的yaml。請從您的cassandra.yaml – RRM 2015-04-01 14:17:47
@RMadhav中移除屬性[sstable_size_in_mb],很可能您的表仍在使用SizeTieredCompactionStrategy。此選項僅受LeveledCompactionStrategy支持,您可以使用以下CQL命令更改壓縮策略:ALTER TABLE tablename WITH compaction = {'class':'LeveledCompactionStrategy','sstable_size_in_mb':40}。我建議使用160MB的默認sstable大小,因爲這是cassandra團隊發現的最理想和經驗豐富的發言,擁有許多微小的SSTables不利於讀取性能。 – 2015-04-01 14:20:32