Для хранения данных задействована структура LSM-tree (журнально-структурированное дерево со слиянием), обеспечивающее высокую производительность не только при чтении, но и при выполнении операций записи и изменения данных. Операции чтения не блокируют запись и чтение данных, а операции записи блокируют только семейства столбцов в которые выполняется запись. Для дополнительного ускорения чтения поддерживаются индексы и кэширование на базе bloom-фильтров (позволяют проверить вхождение во множество, допуская ложное определение отсутствующего элемента, но исключая пропуск существующего элемента).
Имеется полная поддержка ACID-транзакций, позволяющих атомарно вносить изменения, охватывающие семейства столбцов, и при необходимости атомарно откатывать операции. Данные могут хранится в сжатом виде с выбором алгоритма сжатия в привязке к семейству столбцов. Возможно выставление блокировок на уровне отдельных семейств столбцов и выполнение операции упаковки хранилища в параллельном режиме без блокировки выполнения операций с БД.
Основные возможности:
- Поддержка семейств столбцов (Column Families) — изолированных наборов данных в формате ключ/значения. Для каждого семейства столбцов используется свой memtable, SSTable и WAL-лог.
 - ACID-транзакции, охватывающие несколько операций с семействами столбцов.
 - Оптимизация для параллельного доступа к данным.
 - Поддержка двунаправленных итераторов, позволяющих перебирать пары ключ/значение вперёд или назад относительно выбранной позиции в хранилище, используя изначально заданный метод сортировки.
 - Ведение лога операций (WAL, Write-Ahead Log) и автоматическое восстановление memtable (хранилище в оперативной памяти) из данного лога при запуске.
 - Использование Bloom-фильтров для минимизации обращений к накопителю за счёт проверки наличия ключа до чтения из SSTable (постоянное хранилище).
 - Поддержка алгоритмов Snappy, LZ4 и ZSTD для сжатия записей в хранилище SSTable и WAL-логе.
 - Возможность определения времени жизни записей (TTL) и автоматического исключения просроченных записей.
 - Поддержка добавления своих функций сравнения ключей. Наличие встроенных функций сравнения memcmp, string и numeric.
 - Три режима синхронизации данных в ОЗУ с постоянным хранилищем: NONE (самый быстрый), BACKGROUND (сбалансированный), FULL (наиболее надёжный).
 - Возможность настройки размера memtable, методов сжатия, bloom-фильтров, режима синхронизации и параметров упаковки для каждого семейства столбцов.
 - Простой C API, возвращающий 0 при успешном выполнении операции и -1 при ошибке.
 - Использование SBHA (Sorted Binary Hash Array) для быстрого поиска данных в SSTable, позволяющий определять смещения блоков с ключами без полного сканирования.
 - Компактный бинарный формат представления базы, поддерживающий версионирование.
 - Встроенные механизмы контроля целостности, определения повреждений данных и восстановления.
 
Источник: http://www.opennet.ru/opennews/art.shtml?num=64171
