Cassandra数据文件名约定

tom*_*tom 7 cassandra

查看数据文件夹,我注意到CF的以下文件.几个问题 - 每个文件是什么?什么是1 ... 6?1到6中哪一个包含CF的最终(全部)数据?

<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
Run Code Online (Sandbox Code Playgroud)

psa*_*ord 9

这些文件是与SSTable相关的SSTable和元数据.以下是每个文件的简要说明(取自Cassandra源:io/sstable/Component.java)

  • Data.db:sstable的基础数据
  • Index.db:行键的索引,指向数据文件中的位置
  • Filter.db:sstable中行键的序列化bloom过滤器
  • Statistics.db:关于sstable内容的统计元数据
  • Bitidx.db:位图二级索引:其中许多可能存在于每个sstable中
  • 压缩:准备删除sstable时创建的0长度文件

具有*-Compacted的SSTable标记为删除.当JVM执行GC或Cassandra检测到系统磁盘空间不足时,将异步清理这些文件.

数字表示sstable的生成(较大的是较新的).至于哪一个拥有所有数据,在正常情况下,您的数据可以分布在多个SSTable和内存中.您可以使用nodetool刷新列族,然后运行主压缩以生成一个包含该SSTable的所有数据的文件(假设您没有向该列族写入任何其他内容).