21

在试验 Cassandra 时,我观察到 Cassandra 写入以下文件:

/.../cassandra/commitlog/CommitLog-<id>.log
/.../cassandra/data/Keyspace1/Standard1-1-Data.db
/.../cassandra/data/Keyspace1/Standard1-1-Filter.db
/.../cassandra/data/Keyspace1/Standard1-1-Index.db
/.../cassandra/data/system/LocationInfo-1-Data.db
/.../cassandra/data/system/LocationInfo-1-Filter.db
/.../cassandra/data/system/LocationInfo-1-Index.db
/.../cassandra/data/system/LocationInfo-2-Data.db
/.../cassandra/data/system/LocationInfo-2-Filter.db
/.../cassandra/data/system/LocationInfo-2-Index.db
/.../cassandra/data/system/LocationInfo-3-Data.db
/.../cassandra/data/system/LocationInfo-3-Filter.db
/.../cassandra/data/system/LocationInfo-3-Index.db
/.../cassandra/system.log

一般结构似乎是:

/.../cassandra/commitlog/CommitLog-ID.log
/.../cassandra/data/KEYSPACE/COLUMN_FAMILY-N-Data.db
/.../cassandra/data/KEYSPACE/COLUMN_FAMILY-N-Filter.db
/.../cassandra/data/KEYSPACE/COLUMN_FAMILY-N-Index.db
/.../cassandra/system.log

Cassandra 文件结构是什么?更具体地说, , 目录是如何使用的data,目录 ( / / )commitlog中的文件结构是什么?dataDataFilterIndex

4

2 回答 2

30

对 Cassandra 节点的写入首先会命中CommitLog(顺序)。(然后,Cassandra 将值存储到称为 Memtables 的列族特定的内存数据结构中。每当超过一个可配置的阈值时,Memtables 就会刷新到磁盘。(1,memtable 中的数据大小。2,对象数量达到一定限制, 3,内存表的生命周期到期。))

数据文件夹包含每个键空间的子文件夹。每个子文件夹包含三种文件:

  • 数据文件:SSTable(从谷歌借来的命名法)代表排序字符串表,是一个键值字符串对(按键排序)的文件。
  • 索引文件:(键,偏移量)对(指向数据文件)
  • 布隆过滤器:数据文件中的所有键
于 2010-03-01T21:43:51.987 回答
21

Cassandra 文件格式详解

单独的 sstable 文件中的每个 ColumnFamily(例如对象)

ColumnFamilyName-version-#-Data.db
ColumnFamilyName-version-#-Index.db
ColumnFamilyName-version-#-Filter.db

在此处输入图像描述

于 2011-11-28T06:52:51.637 回答