Выпуск СУБД OrientDB 2.1
Представлен релиз системы управления базами данных OrientDB 2.1, которая объединяет в себе возможности документо-ориентированной и графо-ориентированной БД. Взаимодействие между документами в OrientDB обрабатывается как в графо-ориентированной БД с определением прямых связей между записями, что позволяет в считанные миллисекунды пройти по цепочке содержимого деревьев и графов, как целиком так и частями. Дополнительно поддерживается интерфейс объектно-ориентированной БД, который работает поверх документо-ориентированного слоя. OrientDB отличается высокой скоростью работы, на обычном оборудовании позволяя сохранять до 150 000 записей в секунду. Код OrientDB написан на языке Java и распространяется под лицензией Apache.
Ключевым новшеством OrientDB 2.1 является поддержка live-запросов, позволяющих создавать приложения, мгновенно реагирующие на изменение состояния БД. Если при обычных запросах отслеживание изменений производится через периодическую проверку наличия свежих данных, то live-запросы дают возможность получения информации об изменении в режиме реального времени. Работа live-запросов построена через оформление подписки на определённый вид данных, характер которых задаётся при помощи обычного условного блока WHERE. При появлении новой информации, соответствующей заданному запросу, OrientDB сразу отправит данные клиенту.
В новой версии также произведена интеграция средств аудита, позволяющих отслеживать все операции изменения, чтения, обновления и удаления для каждого объекта в СУБД. Поддерживается наследование объектами установленных свойств аудита. Кроме того, представлены новые средства для мониторинга и анализа статистики работы СУБД.
Основные особенности OrientDB:
- Полная поддержка ACID-транзакций;
- Поддержка подмножества языка SQL для выполнения запросов c использованием конструкции SELECT (OrientDB не является реляционной БД, поэтому в полной мере все возможности SQL не поддерживает);
- Поддержка хранения данных без описания предварительной схемы, с описанием полной структуры или в смешанном режиме;
- Полностью совместима со стандартом TinkerPop Blueprints для графо-ориентированных БД;
- Поддержка языка запросов Gremlin;
- Нативно поддерживает HTTP, RESTful и JSON протоколы без использования сторонних компонентов;
- Возможность работы как в режиме встраивания в другие приложения, так и в качестве выделенного сервера;
- Возможность отката внесённых в документ локальных изменений (ODocument.undo);
- Имеет очень малый размер и не имеет сторонних зависимостей;
- Поддерживается строгая политика разграничения доступа на основе ролей и полномочий пользователей;
- Дистрибутив полностью самодостаточен;
- Поддерживает отказоустойчивые конфигурации и репликацию (архитектура OrientDB изначально рассчитана на мультимастер репликацию);
- Кластер OrientDB может состоять из тысяч узлов и использовать для организации единого хранилища алгоритм распределённой хэш-таблицы (DHT);
- Поддержка запуска скриптов на стороне сервера (Server Side Scripting);
- Использование собственного алгоритма RB+Tree для хранения данных, сочетающего в себе особенности Red-Black Tree и B+Tree, что позволяет добиться вдвое меньшего потребления памяти при сохранении скорости Red-Black Tree за счёт балансировки операций добавления и обновления данных.
© OpenNet