OrientDB
OrientDB — це NoSQL система керування базами даних в відкритим сирцевим кодом. OrientDB об'єднує в собі можливості документо-орієнтованої і графо-орієнтованої БД. Навіть при роботі з документ-орієнтованими даними взаємодія між документами обробляється як в графо-орієнтованої БД з визначенням прямих зв'язків між записами. При цьому, можна в лічені мілісекунди пройти по ланцюжку вмісту дерев і графів, як цілком так і частинами. Додатково підтримується інтерфейс об'єктно-орієнтованої БД, який працює поверх документо-орієнтованого шару.
| |
Тип | Графова база даних |
---|---|
Розробник | Luca Garulli |
Перший випуск | 2010 |
Стабільний випуск | 2.2.9 (8 вересня 2016 ) |
Версії | 3.2.0 (29 квітня 2021)[1] |
Репозиторій | github.com/orientechnologies/orientdb |
Платформа | Віртуальна машина Java |
Операційна система | крос-платформова |
Мова програмування | Java |
Ліцензія | Apache License 2 |
Вебсайт | www.orientechnologies.com |
Незважаючи на те що вона є документо-орієнтованою, зв'язки між даними в ній реалізовуються прямими посиланнями, так як це робиться в графових базах даних. Вона підтримує schema-less, schema-full та schema-mixed режими опису даних, що зберігаються в базі. Вона є дуже легкою в використанні, бо підтримує SQL як мову запитів, ця властивість дозволяє позбавитись багатьох проблем на початку її використання.
Оперуючи запитами ключ/значення кластер, OrientDB може складатися з тисяч вузлів, використовуючи для організації єдиного сховища алгоритм розподіленої геш-таблиці (DHT). OrientDB використовує новий власний механізм індексації, що називається MVRB-Tree. Цей алгоритм є комбінацією алгоритмів червоно-Чорних дерев та Б+ дерев. Це механізм споживає удвічі менше пам'яті при збереженні швидкості Red-Black Tree за рахунок балансування операцій додавання і поновлення даних, і дозволяє одночасно мати високу швидкість вставки та дуже швидкий пошук.
Код OrientDB написаний на мові Java і розповсюджується під ліцензією Apache.
Переваги
- OrientDB відрізняється високою швидкістю роботи, на звичайному обладнанні, дозволяючи зберігати до 150 000 записів в секунду. При тестуванні продуктивності, один сервер з OrientDB виявився здатний замінити собою 125 серверів MySQL.[2] Розподілена мережа серверів здатна забезпечити зберігання до 9.223.372.036 мільярдів записів і 19.807.040.628.566.084 Тб даних.
- Транзакційність: повна підтримка ACID властивостей Transactions. При On crash it recovers pending documents
- GraphDB: OrientDB може використовуватись як графова база, має додатковий інтерфейс що дозволяє працювати з абстракцією графа. Є 100% сумісною з TinkerPop Blueprints що є стандартом для графових баз даних
- Підтримка підмножини мови SQL з деяким розширенням для того, щоб обробляти дані без SQL join, обробляти дерева та графи зв'язаних документів для виконання запитів c використанням конструкції SELECT. (OrientDB не є реляційної БД, тому повною мірою всі можливості SQL не підтримує)
- Підтримка зберігання даних без опису попередньої схеми, з описом повної структури або в змішаному режимі
- 100% сумісна зі стандартом TinkerPop Blueprints для графо-орієнтованих БД
- Підтримка мови запитів Gremlin
- Нативно підтримує HTTP, RESTful і JSON протоколи без використання сторонніх компонентів
- Можливість роботи як в режимі вбудовування в інші застосунки, так і як виділеного сервера
- Можливість відкоту внесених у документ локальних змін (ODocument.undo);
- Підтримується сувора політика розмежування доступу на основі ролей і повноважень користувачів
- Підтримує відмовостійкі конфігурації і реплікацію (архітектура OrientDB спочатку розрахована на мультімастер реплікацію)
- Підтримка запуску скриптів на стороні сервера (Server Side Scripting). Підтримка функцій, виконуваних на стороні сервера (аналог збережених процедур). Для написання серверних функцій використовується мова JavaScript
- Дистрибутив повністю самодостатній, компактна: розмір, всього сервер займає близько 1Mb. Не має залежностей від інших бібліотек
- Крос-платформова: ядро бази повністю написано на чистій Java: може бути працювати на Linux, Windows та будь-якій системі що підтримє Java технології
- Apache License 2: завжди вільна до використання
- Доступна комерційна підтримка
Виноски
- Release 3.2.0 — 2021.
- Первый релиз NoSQL БД OrientDB // opennet.ru 15.05.2012