2013-07-16 28 views
0

我們在1.2.5 Cassandra集羣上有一個寫入繁重的工作流程。由於磁盤空間有限,我們必須偶爾刪除較舊的數據。當可用磁盤空間量下降到某個級別時,將開始刪除操作。我們已經學習了墓碑的作用,即當gc_grace超時到期並且正在進行小型壓縮時它們被刪除。所以我們設置了「耐心延遲」,當它到期時,我們可以再次檢查磁盤上的可用空間。可預測的Cassandra行刪除

但是我們需要一個更可預測的刪除方案,因爲我們不能依賴「輕微壓縮可能會運行一些日子」。這看起來不太具體,所以我們不知道什麼時候應該再次檢查磁盤上的可用空間。也許你可以提供一些想法。

回答

0

這可能是一個很好的平整壓實用例 - 如果插入率保持不變,移除過期墓碑所用的時間將大致保持不變。

或者,如果使用大小分層壓縮(默認值),則可以使用nodetool compact運行完整壓縮。這將刪除所有比gc_grace更早的墓碑。

但是,這會將所有數據重寫爲一個大的SSTable,因此需要時間與您的總數據大小成比例。您還需要使用不到磁盤空間的一半才能完成後續壓縮。