Cassandra

Cassandra 寫(太?)大分區

  • April 16, 2018

我有一個 Cassandra 集群已經執行了很長一段時間(幾個月),並且正如預期的那樣,它每天都在消耗大量數據。

在過去的幾天裡,集群一直出現問題,因為其中一個節點不斷崩潰,我在日誌中看不到太多。

突出的一件事是以下警告,但我現在確定它是否相關:

insufficient space to compact all requested files. 846201.56MB required

這比可用的要多得多。儘管如此,即使有足夠的磁碟來支持這種壓縮,也似乎過度了,不是嗎?

有誰知道我的問題是什麼?

感謝您的關注。

預設情況下,Cassandra 使用SizeTieredCompactionStrategy將幾個類似大小的文件(預設為 4 個)壓縮成更大的文件。這些文件包含多個分區,因此大文件大小不是寬分區的必要標誌。

當您使用 Cassandra(尤其是SizeTieredCompactionStrategy)時,您需要有**大約 50%**的可用磁碟空間,以便 Cassandra 能夠在壓縮期間寫入數據 - 壓縮發生後,舊文件將被刪除。

您也可以考慮使用其他壓縮策略,例如LeveledCompactionStrategy,但它更適合讀取繁重的工作負載(例如 90% 的操作都是讀取)。

您可以在文件中閱讀有關壓縮策略的更多資訊,並在此部落格文章中閱讀有關大小分層壓縮的更多資訊。

引用自:https://dba.stackexchange.com/questions/204051