Структура файла Cassandra - как используются файлы? - PullRequest
21 голосов
/ 02 марта 2010

Экспериментируя с Кассандрой, я заметил, что Кассандра пишет в следующие файлы:

/.../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)?

Ответы [ 2 ]

29 голосов
/ 02 марта 2010

При записи в узел Кассандры сначала выполняется CommitLog (последовательный). (Затем Cassandra сохраняет значения в специфических для семейства столбцов структурах данных в памяти, называемых Memtables. Memtables сбрасывается на диск при превышении одного из настраиваемых порогов. (1, размер данных в memtable. 2, # объектов достигает определенного предела, 3, время жизни memtable истекает.))

Папка data содержит подпапку для каждого пространства клавиш. Каждая подпапка содержит три вида файлов:

  • Файлы данных: SSTable (номенклатура позаимствовано у Google) обозначает Таблица отсортированных строк и представляет собой файл пары ключ-значение (отсортировано по ключи).
  • Индексный файл: (Ключ, смещение) пары (точки в файле данных)
  • Фильтр Блума : все ключи в файле данных
21 голосов
/ 28 ноября 2011

Подробно о формате файла Кассандры

Каждая ColumnFamily (например, объект) в отдельных sstable файлах

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

enter image description here

...