Доступен релиз встраиваемой СУБД Sophia 2.1, которая поставляется в форме разделяемой библиотеки, предоставляющей API для обработки данных. Код Sophia написан на языке Си и поставляется под лицензией BSD.

СУБД рассчитана на обеспечение очень большой скорости записи и чтения при работе с данными небольшого и среднего размера. Данные сохраняются на диске с использованием лог-подобного хранилища, работающего в режиме постоянного пополнения (append-only). В отличие от других лог-подобных хранилищ, метод хранения в Sophia не ограничивается высокой скоростью записи, но также оптимизирован для обеспечения высокой скорости произвольного чтения данных и выборки диапазонов значений.

Начиная с версии 2.1 СУБД Sophia позиционируется как гибридное RAM/Disk-хранилище, использующее для хранения как ОЗУ так и диск, и позволяющее автоматически разделять "горячие" и "холодные" данные (обновлённые и не изменявшиеся).

Поддерживаются следующие технологии:

  • Дисковое хранение - для хранения используется жесткий диск или Flash-память. Запись кешируется в памяти для последующего сброса на диск.
  • Анти-кеширование - оперативная память становится основным хранилищем. Холодные данные читаются с диска или Flash-памяти.
  • Постоянное кеширование - Второе хранилище используется в паре как LRU-кеш в оперативной или Flash-памяти для горячих данных. Холодные и горячие данные дублируются в основном хранилище.
  • Постоянное хранение в памяти - данные хранятся в оперативной памяти и постоянно сохраняются на диске. Поддерживается сжатие данных в памяти.

Из других улучшений в новом выпуске можно отметить режим LRU для вытеснения старых данных из кеша, возможность раздельного сжатия "горячих" и "холодных" данных, реализация фильтра приблизительной выборки (AMQ, Approximate Member Query), поддержка снапшотов для быстрого восстановления после сбоя, реорганизация операций UPSERT (добавить-или-модифицировать), новый режим интеграции c другими СУБД с Write-Ahead Log, дополнительные метрики для мониторинга производительности.

Основные особенности СУБД Sophia:

  • Быстрая запись (Append-Only) и оптимизация на чтение;
  • Соответствие требованиям ACID (атомарность, согласованность, изолированность, надежность);
  • MVCC-движок для обеспечения одновременного конкурентного доступа к БД (Multi-Version Concurrency Control);
  • Транзакции, которые могут охватывать несколько операций;
  • Консистентные курсоры;
  • Снапшоты;
  • Возможность хранения нескольких БД в одном файле;
  • Поддержка сериализированных представлений;
  • Многопоточный движок и возможность использования в многопоточных приложениях;
  • Поддержка создания горячих бэкапов, создаваемых на лету без приостановки работы;
  • Простой API, лёгкая интеграция с приложениями, отсутствие сторонних зависимостей. Для работы требуется только два файла на языке Си.


Источник: http://www.opennet.ru/opennews/art.shtml?num=43727