Релиз встраиваемой NoSQL БД HamsterDB 2.1.0

Материал из Викиновостей, свободного источника новостей

3 марта 2013 года

Представлен (Архивная копия от 13 февраля 2014 на Wayback Machine) релиз NoSQL БД HamsterDB 2.1.0, в первую очередь ориентированной для встраивания в приложения функций постоянного хранения или кэширования записей, но поддерживающей работу и в режиме обособленной NoSQL БД с доступом по сети. Код проекта написан на языке C++ и поставляется под лицензией GPLv2+ с исключением (Архивная копия от 3 апреля 2014 на Wayback Machine) для возможности связывания с проектами под несовместимыми с GPL лицензиями (Apache, BSD, Zlib и т.п.). Биндинги для использования HamsterDB доступны для языков C/C++, Python, .NET, Java, Erlang и ADA.

Среди особенностей HamsterDB можно отметить поддержку транзакций, наличие средств для восстановления и ведения журнала изменений, возможность хранения дублирующихся ключей (в том числе в отсортированном виде), очень быструю реализацию курсора для перемещения по записям, возможность частичного чтения и записи данных, как поддержку работы в роли постоянного хранилища, так и в роли хранимой в оперативной памяти БД (In-Memory DB). Формат файла с БД не привязан к архитектурным особенностям процессоров и может использоваться без изменений на различных платформах, включая x86, x64, PowerPC, SPARC, ARM и RISC.

Записи хранятся в виде отсортированного дерева B+Tree, поддерживающего помещение ключей переменной длины. Используемые в HamsterDB алгоритмы и структуры данных оптимизированы для гарантированного достижения высокой производительности для всех возможных сценариев применения. Например, по возможности минимизируются операции доступа к диску и обращения к системным вызовам, структуры данных реализованы с учётом особенности работы кэша в современных CPU, для оптимизации медленного ввода/вывода используется кэширование в памяти. Благодаря использованию 64-разрядных указателей, размер файлов с базой практически не ограничен.

Для логического разделения баз в HamsterDB используется понятие окружений, которые позволяют хранить несколько разных БД в одном файле. HamsterDB может использоваться как в виде связываемой с приложением библиотеки (не требует дополнительных зависимостей), так и в форме сервера. Сервер HamsterDB базируется на использовании небольшого http-сервера, который может запускаться отдельно или встраиваться в приложения. Доступны средства для тонкой настройки и тюнинга БД (размер кэша, ключей, страниц и т.п.).

HamsterDB можно рассматривать как стабильный и зрелый проект, развивающийся с 2004 года. Для тестирования качества кода создано более 45000 проверок и 1800 unit-тестов. HamsterDB активно используется во многих популярных десктоп-приложениях, встраиваемых устройствах, телефонах и даже в облачных системах.

Из изменений (Архивная копия от 6 марта 2013 на Wayback Machine) в HamsterDB 2.1.0 выделяется поддержка транзакций для окружений с хранением БД в памяти. Кроме того, проведена значительная переработка, ревизия и чистка API. Большинство изменений в API связано с переименованием констант и функций с целью достижения единой схемы наименования. Удалены функции с поддержкой файловых фильтров, сжатия и шифрования хранимых данных. Формат хранилища не изменился. В состав включены две новые утилиты: ham_export для экспорта БД в компактном бинарном формате и ham_import для создания окружения БД из ранее сохранённого бинарного дампа или слияния содержимого дампа с существующей БД. Кроме функций резервного копирования утилиты ham_export/ham_import рассматриваются как инструменты для переноса содержимого БД в процессе обновления версий HamsterDB в будущем.

Источники[править]


Creative Commons
Creative Commons
Эта статья содержит материалы из статьи «Релиз встраиваемой NoSQL БД HamsterDB 2.1.0», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии[править]

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.