Структура файла Cassandra - как используются файлы?
Когда я экспериментировал с 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
)?
Ответы
Ответ 1
Запись в Cassandra node сначала попадает в CommitLog (последовательный). (Затем Cassandra хранит значения для определенных в столбцах семейств данных, называемых Memtables. Memtables сбрасываются на диск всякий раз, когда превышается один из настраиваемых пороговых значений (1, datasize в memtable 2, количество объектов достигает определенного предела, 3, срок жизни памяти заменяется.))
Папка datastrong > содержит подпапку для каждого пространства ключей. Каждая вложенная папка содержит три типа файлов:
- Файлы данных: SSTable (номенклатура
заимствован из Google) означает
Таблица отсортированных строк и является файлом
пары строк ключевого значения (отсортированные по
клавиши).
- Индексный файл: (Key, offset) пары (точки в файле данных)
- Цветной фильтр: все ключи в файле данных
Ответ 2
Подробный формат файла Cassandra
Каждый элемент ColumnFamily (например.) в разделенных sstable файлах
ColumnFamilyName-version-#-Data.db
ColumnFamilyName-version-#-Index.db
ColumnFamilyName-version-#-Filter.db
![enter image description here]()