sstableexpiredblockers
在壓縮期間,如果整個 sstable 僅包含已過期的墓碑,且保證資料不會比其他 sstable 中的資料新,則可以刪除整個 sstable。如果過期 sstable 中最新時間戳比另一個 sstable 中最舊資料新,則會阻止刪除過期 sstable。
此工具用於列出所有阻止刪除其他 sstable 的 sstable(比過期 sstable 中最新墓碑舊的資料),以便使用者找出某些 sstable 仍存在磁碟上的原因。
執行此工具之前必須停止 Cassandra,否則會產生意外結果。注意:腳本不會驗證 Cassandra 是否已停止。
輸出已封鎖的 sstable
如果表格存在 sstable,但沒有表格比過期 sstable 中最新墓碑舊,則腳本將不會傳回任何內容。
否則,腳本將傳回 <sstable> 區塊 <> 過期 sstable,使其無法刪除,後面接著列出已封鎖的 sstable。
範例
sstableexpiredblockers keyspace1 standard1 [BigTableReader(path='/var/lib/cassandra/data/keyspace1/standard1-0665ae80b2d711e886c66d2c86545d91/mc-2-big-Data.db') (minTS = 5, maxTS = 5, maxLDT = 2147483647)], blocks 1 expired sstables from getting dropped: [BigTableReader(path='/var/lib/cassandra/data/keyspace1/standard1-0665ae80b2d711e886c66d2c86545d91/mc-3-big-Data.db') (minTS = 1536349775157606, maxTS = 1536349780311159, maxLDT = 1536349780)], [BigTableReader(path='/var/lib/cassandra/data/keyspace1/standard1-0665ae80b2d711e886c66d2c86545d91/mc-1-big-Data.db') (minTS = 1, maxTS = 10, maxLDT = 2147483647)], blocks 1 expired sstables from getting dropped: [BigTableReader(path='/var/lib/cassandra/data/keyspace1/standard1-0665ae80b2d711e886c66d2c86545d91/mc-3-big-Data.db') (minTS = 1536349775157606, maxTS = 1536349780311159, maxLDT = 1536349780)],