Что такое compaction?

Middle+
280 просмотров
AFK Offer AI

Compaction — процесс объединения и очистки данных в LSM-tree хранилищах (Cassandra, RocksDB, LevelDB). При записи данные сначала попадают в memtable, потом сбрасываются на диск как SSTable. Со временем накапливается много SSTable, и compaction объединяет их: удаляет tombstone, оставляет только последнюю версию каждого ключа, создаёт новые отсортированные файлы. Два стиля: size-tiered (объединяет файлы похожего размера) и leveled (файлы организованы по уровням). Compaction занимает CPU и I/O, поэтому его нужно мониторить.

Следующий вопрос

Как читать файл построчно?