Выпуск встраиваемой СУБД Sophia 2.2
Состоялся релиз встраиваемой СУБД Sophia 2.2, оформленной в виде разделяемой библиотеки. СУБД рассчитана на обеспечение очень большой скорости записи и чтения при работе с данными небольшого и среднего размера. Данные сохраняются на диске с использованием лог-подобного хранилища, работающего в режиме постоянного пополнения (append-only). В отличие от других лог-подобных хранилищ, метод хранения в Sophia не ограничивается высокой скоростью записи, но также оптимизирован для обеспечения высокой скорости произвольного чтения данных и выборки диапазонов значений. Код Sophia написан на языке Си и поставляется под лицензией BSD.
Ключевыми изменениями в Sophia 2.2 являются новые схема хранения и архитектура хранения. Новая схема хранения базируется на построчном размещении, при котором каждая строка включает ряд полей произвольного типа. Подобный подход позволяет снизить накладные расходы при размещении данных в хранилище, например, числа и метадданые могут хранится в более компактном представлении непосредственно в строках (rows). Кроме того, новая схема позволят организовать работу со вторичными индексами. Что касается новой архитектуры хранения, то её основной особенностью является обеспечение постоянной производительности операций чтения, записи и сканирования диапазонов, не зависящей от размера хранилища (O (1)).
Основные особенности СУБД Sophia:
- Быстрая запись (Append-Only) и оптимизация на чтение;
- Соответствие требованиям ACID (атомарность, согласованность, изолированность, надежность);
- MVCC-движок для обеспечения одновременного конкурентного доступа к БД (Multi-Version Concurrency Control);
- Транзакции, которые могут охватывать несколько операций;
- Консистентные курсоры;
- Снапшоты;
- Возможность хранения нескольких БД в одном файле;
- Поддержка сериализированных представлений;
- Многопоточный движок и возможность использования в многопоточных приложениях;
- Поддержка создания горячих бэкапов, создаваемых на лету без приостановки работы;
- Простой API, лёгкая интеграция с приложениями, отсутствие сторонних зависимостей. Для работы требуется только два файла на языке Си.
- Поддерживаемые технологии хранения:
- Дисковое хранение — для хранения используется жесткий диск или Flash-память. Запись кешируется в памяти для последующего сброса на диск.
- Анти-кеширование — оперативная память становится основным хранилищем. Холодные данные читаются с диска или Flash-памяти.
- Постоянное кеширование — Второе хранилище используется в паре как LRU-кеш в оперативной или Flash-памяти для горячих данных. Холодные и горячие данные дублируются в основном хранилище.
- Постоянное хранение в памяти — данные хранятся в оперативной памяти и постоянно сохраняются на диске. Поддерживается сжатие данных в памяти.
© OpenNet