Cassandra数据文件名约定

时间:2012-01-09 18:49:11

标签: 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

2 个答案:

答案 0 :(得分: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的生成(较大的是较新的)。至于哪一个 all 数据,在正常情况下,您的数据可以分布在多个SSTable和内存中。您可以使用nodetool刷新列族,然后运行主压缩以生成一个包含该SSTable的所有数据的文件(假设您没有向该列族写入任何其他内容)。

答案 1 :(得分:1)

关于psanford答案的一些有用的额外信息可以在上找到 Cassandra SSTable Format Version Numbers,其中更详细地解释了命名约定(它取决于版本)。