2012-01-09 53 views
7

查看數據文件夾,我注意到CF的以下文件。幾個問題 - 每個文件都有哪些?什麼是1 ... 6? 1到6中哪一個包含CF的最終(全部)數據?Cassandra數據文件名稱約定

<cf name>-g-1-Compacted 
<cf name>-g-1-Data.db 
<cf name>-g-1-Filter.db 
<cf name>-g-1-Index.db 
<cf name>-g-1-Statistics.db 

... 

<cf name>-g-6-Compacted 
<cf name>-g-6-Data.db 
<cf name>-g-6-Filter.db 
<cf name>-g-6-Index.db 
<cf name>-g-6-Statistics.db 

回答

9

這些文件是與SSTables相關的SSTables和元數據。下面是每個文件的簡要說明(從卡桑德拉源擡起:IO /的SSTable/Component.java)

  • Data.db:用於的SSTable
  • Index.db基礎數據:行的索引序列化布隆過濾器在的SSTable
  • Statistics.db行鍵:有關的SSTable
  • Bitidx.db的內容統計元數據:與指針的數據文件
  • Filter.db位置一鍵位圖二級索引:其中許多可能存在每個sstable
  • 壓實:當的SSTable準備所創建長度爲0的文件被刪除

SSTables與* -Compacted被標記爲刪除。當JVM執行GC或Cassandra檢測到系統磁盤空間不足時,這些文件將被異步清理。

該數字表示生成一個sstable(較大的更新)。至於哪一個具有全部這些數據,在正常情況下,您的數據可以分散到多個SSTables和內存中。您可以使用nodetool來刷新一個列族,然後運行一次主要的壓縮來生成一個包含該SSTable所有數據的文件(假設您不向該列族寫入任何其他內容)。

+0

值得注意的是'Data.db'文件包含列族中的所有數據。所有其他人都可以從中產生。 – 2015-01-27 22:02:39