Выпуск СУБД OrientDB 2.2

Состоялся релиз СУБД OrientDB 2.2, которая объединяет в себе возможности документо-ориентированной и графо-ориентированной БД. Взаимодействие между документами в OrientDB обрабатывается как в графо-ориентированной БД с определением прямых связей между записями, что позволяет в считанные миллисекунды пройти по цепочке содержимого деревьев и графов, как целиком так и частями. Дополнительно поддерживается интерфейс объектно-ориентированной БД, который работает поверх документо-ориентированного слоя. Код OrientDB написан на языке Java и распространяется под лицензией Apache.

Ключевые новшества:

  • Обеспечена возможность хранения данных на диске в зашифрованном виде. Для шифрования предлагаются алгоритмы AES и DES. Ключ шифрования не хранится в БД, а передаётся при подключении к СУБД;
  • Добавлена новая настраиваемая модель обеспечения согласованности данных в графе (Graph Consistency), выступающая в роли альтернативы транзакциям и по сравнению с ними ускоряющая выполнение операций по изменению элементов графа;
  • На смену Workbench пришел новый web-интерфейс OrientDB Studio, основанный на новой архитектуре и других модулях; 0_1463594764.png
  • Улучшены системы аудита операции с БД, расширены возможности аутентификации, добавлена поддержка 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