Выпуск СУБД OrientDB 2.2
Состоялся релиз СУБД OrientDB 2.2, которая объединяет в себе возможности документо-ориентированной и графо-ориентированной БД. Взаимодействие между документами в OrientDB обрабатывается как в графо-ориентированной БД с определением прямых связей между записями, что позволяет в считанные миллисекунды пройти по цепочке содержимого деревьев и графов, как целиком так и частями. Дополнительно поддерживается интерфейс объектно-ориентированной БД, который работает поверх документо-ориентированного слоя. Код OrientDB написан на языке Java и распространяется под лицензией Apache.
Ключевые новшества:
- Обеспечена возможность хранения данных на диске в зашифрованном виде. Для шифрования предлагаются алгоритмы AES и DES. Ключ шифрования не хранится в БД, а передаётся при подключении к СУБД;
- Добавлена новая настраиваемая модель обеспечения согласованности данных в графе (Graph Consistency), выступающая в роли альтернативы транзакциям и по сравнению с ними ускоряющая выполнение операций по изменению элементов графа;
- На смену Workbench пришел новый web-интерфейс OrientDB Studio, основанный на новой архитектуре и других модулях;
- Улучшены системы аудита операции с БД, расширены возможности аутентификации, добавлена поддержка Kerberos;
- В движок внесена порция оптимизаций, позволившая ускорить работу при различных видах нагрузки;
- Для распределённых конфигураций представлена поддержка режима быстрой ресинхронизации узлов (fast-resync);
- Реализовано решение для создания инкрементальных бэкапов;
- Добавлен инструмент Teleporter, позволяющий синхронизировать содержимое БД с реляционными СУБД и упрощающий проведение миграции данных в OrientDB;
- Добавлены дополнительные элементы в реализацию SQL: поиск по шаблону (оператор MATCH), кэш команд, параллельные запросы и Live-запросы (получение изменений в реальном времени);
- В OrientJS, драйвер для Node.js, добавлена поддержка демаршалинга.
Основные особенности 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 за счёт балансировки операций добавления и обновления данных.
- Поддержка live-запросов, позволяющих получать информацию об изменениях в БД в режиме реального времени;
- Наличие средств аудита для отслеживания всех операции изменения, чтения, обновления и удаления для каждого объекта в СУБД.
© OpenNet