При экспериментировании с 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
каталоги использовали, и что является структурой файлов в data
каталог (Data
/Filter
/Index
)?
Запись на узел Cassandra сначала попадает в CommitLog (последовательно). (Затем Cassandra сохраняет значения в специфичных для семейства столбцов структурах данных в памяти, называемых Memtables. Memtables сбрасывается на диск всякий раз, когда превышается один из настраиваемых пороговых значений. (1, данные в memtable. 2, # объектов достигают определенного предела, 3, время жизни memtable истекает.))
Папка data содержит подпапку для каждого пространства ключей. Каждая подпапка содержит три типа файлов: