OrientDB

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук
OrientDB
Розробник(и) Luca Garulli
Перший випуск 2010
Стабільний випуск 1.3 (22 грудня 2012; 487 днів тому)
Написано на Java
Операційна система крос-платформова
Тип Графова база данних
Ліцензія Apache License 2
Сайт www.orientechnologies.com

OrientDB — це NoSQL система керування базами даних в відкритим сирцевим кодом. OrientDB об'єднує в собі можливості документо-орієнтованої і графо-орієнтованої БД. Навіть при роботі з документ-орієнтованими даними взаємодія між документами обробляється як в графо-орієнтованої БД з визначенням прямих зв'язків між записами. При цьому, можна в лічені мілісекунди пройти по ланцюжку вмісту дерев і графів, як цілком так і частинами. Додатково підтримується інтерфейс об'єктно-орієнтованої БД, який працює поверх документо-орієнтованого шару.

Незважаючи на те що вона є документо-орієнтованною, зв'язки між даними в ній реалізовуються прямими посиланнями, так як це робиться в графових базах даних. Вона підтримує schema-less, schema-full та schema-mixed режими опису даних, що зберігаються в базі. Вона є дуже легкою в використанні, бо підтримує SQL як мову запитів, ця властивість дозволяє позбавитись багатьох проблем на початку її використання.

Оперуючи запитами ключ/значення кластер, OrientDB може складатися з тисяч вузлів, використовуючи для організації єдиного сховища алгоритм розподіленої геш-таблиці (DHT). OrientDB використовує новий власний механізм індексації, що називається MVRB-Tree. Цей алгоритм є комбінацією алгоритмів червоно-Чорних дерев та Б+ дерев. Це механізм споживає удвічі менше пам'яті при збереженні швидкості Red-Black Tree за рахунок балансування операцій додавання і поновлення даних, і дозволяє одночасно мати високу швидкість вставки та дуже швидкий пошук.

Код OrientDB написаний на мові Java і розповсюджується під ліцензією Apache.

Переваги[ред.ред. код]

  • OrientDB відрізняється високою швидкістю роботи, на звичайному обладнанні, дозволяючи зберігати до 150 000 записів в секунду. При тестуванні продуктивності, один сервер з OrientDB виявився здатний замінити собою 125 серверів MySQL.[1] Розподілена мережа серверів здатна забезпечити зберігання до 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: завжди вільна до використання
  • Доступна комерційна підтримка

Виноски[ред.ред. код]

Посилання[ред.ред. код]