Выпущен OrientDB 1.5. Эта база данных графа документов имеет открытый исходный код, и улучшения в новой версии включают новый механизм локального хранения с разбивкой на страницы.
OrientDB — это не база данных с прямым графом; у него есть гибридная модель с элементами, взятыми из миров баз данных документов и баз данных объектов. Он может использовать схемы или использоваться без схемы и поддерживает традиционные функции базы данных, такие как транзакции ACID и запросы SQL. Вы также можете использовать JSON для импорта и экспорта документов. OrientDB написан на Java, и заявления о его производительности впечатляют: он позволяет хранить до 150 000 записей в секунду на обычном оборудовании. Поскольку OrientDB использует лицензию Apache2, она бесплатна для любого использования, даже коммерческого.
OrientDB начал свою жизнь как объектно-ориентированная база данных под названием Orient ODBMS еще в 1998 году, но с тех пор она была полностью переписана на Java в форме базы данных документов, а версия 1.0 была выпущена в мае 2012 года. оболочка, построенная поверх базы данных документов, которая прозрачно отображает записи документов OrientDB в POJO (простые старые объекты Java).
Базы данных Graph хранят свои данные с помощью техники, называемой безиндексной смежностью. По сути, это означает, что элемент данных имеет указатели на другие элементы данных, с которыми он связан, каждый из которых также имеет указатели на элементы, с которыми связан элемент данных.
Типичные применения графовых баз данных включают социальные сети, механизмы рекомендаций и сетевые системы. Если вы хотите выполнить такие запросы, как «покажите мне друзей друзей человека x», графовые базы данных работают намного быстрее, чем реляционные базы данных, когда глубина запроса возрастает. В одном тесте этого типа запроса база данных графа была в 150 раз быстрее, чем реляционный запрос на глубине запроса три. При глубине запроса, равной четырем, база данных графов была более чем в 1000 раз быстрее.
Изменения в OrientDB начинаются с механизма локального хранилища с разбивкой на страницы. Он постоянен, как и местный магазин, но хранит информацию по-другому. Записи хранятся в файлах кластера, и это хранилище более надежно, чем локальное, благодаря режиму добавления при записи. Он больше не использует отображение памяти (MMAP), поэтому поведение становится более «предсказуемым» и поддерживает лучший параллелизм в параллельных транзакциях.
Другие улучшения включают новый тип индекса хеширования с улучшенной производительностью при поиске. Также есть новая «транзакционная» команда SQL, которую можно использовать для выполнения команд внутри транзакции. Утверждается, что это полезно для обеспечения правильной работы команды SQL «create edge» и предотвращения повреждения графа.