Выпуск встраиваемой СУБД Sophia 1.2.2

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

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

Отличительные особенности:

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

Новшества Sophia 1.2.2:

  • Поиск по префиксу, позволяющий выбирать записи, соответствующие указанному префиксу ключа;
  • Возможность сжатия блоков (включая метаданные) с использованием библиотек lz4 и zstd. Операции сжатия выполняются в фоновом режиме;
  • Асинхронные и синхронные транзакции. Транзакции могут выполняться как параллельно, не дожидаясь выполнения других транзакций, так и в блокирующем режиме, который используется по умолчанию. Триггеры выполняются после завершения обработки запроса;
  • Выполнение операций DROP и SHUTDOWN в асинхронном режиме. К объектам БД применяется версионирование. Операции удаления выполняются асинхронно, после подтверждения последней транзакции;
  • Оптимизация вычисления контрольных сумм с использованием инструкций SSE.


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

<= Назад
Комментарии
]]> ipv6 ready Kiev LUGLinux4MeНостальгияЛичный сайт skeletora ]]>