簡體   English   中英

即使在Cassandra TTL(生存時間)之后,磁盤空間大小仍保持不變

[英]Disk space size remains same even after Cassandra TTL (Time to live)

我已經在代碼中實現了TTL功能,並成功刪除了記錄。 但是數據存儲大小保持不變。 應該立即減少。 最新的Cassandra文件說,第一次壓縮后,數據將被刪除(不清晰)。

我的簡單問題

完成TTL后,我需要立即確保尺寸。 那么如何確保磁盤空間是否減少呢?

請分享您的想法..

謝謝

Cassandra將其數據保存在sstables中。 AFAIK知道,在正常寫入期間,sstable將被附加(未更新,刪除)。 就像您自己提到的那樣,壓縮是合並sstable的方法。 刪除邏輯刪除(已刪除的列)時,這可能會導致更多的可用磁盤空間。

這里可以看出,壓縮是一個后台過程。 您可以通過配置影響的頻率,如描述在這里 我認為沒有辦法強制Cassandra客戶端進行較小的壓縮。 您可以使用nodetool compact強制進行重大壓縮。 但是,請記住,壓縮非常耗費I / O。 所以我認為這不是一個真正的解決方案。

但是,為什么要立即物理刪除已刪除的數據如此重要?

每個節點上的nodetool repair -pr都將刪除您已成為邏輯刪除的記錄(無論如何,您都應該基於gc_grace_seconds經常這樣做,請參見http://www.datastax.com/documentation/cassandra/2.0/cassandra/operations/ops_repair_nodes_c。 html?scroll = concept_ds_ebj_d3q_gk )。

對於磁盤空間進度,這就像在之前和之后運行“ df -h”一樣簡單。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM