+38/050/370-3627
+38/093/220-0872
+38/044/257-2444
Новини

Apple відкрила код розподіленої СУБД FoundationDB

Компанія Apple перевела до розряду вільних проектів СУБД FoundationDB, що відноситься до класу NoSQL-систем, що маніпулюють даними у форматі ключ/значення. Особливістю FoundationDB є можливість створення великих розподілених сховищ, у яких можливе використання повноцінних транзакцій, які відповідають вимогам ACID (атомарність, узгодженість, ізольованість, надійність) всім операцій із даними. Код СУБД написаний мовою С++ та постачається під ліцензією Apache 2.0.

Компанія Apple поглинула FoundationDB у 2015 році і тепер має намір перейти до відкритої моделі розробки. Крім публікації коду під відкритою ліцензією, почалося становлення спільноти та перехід до відкритої моделі розробки, за якої всі рішення прийматимуться прозоро та будь-хто охочий зможе запропонувати свої зміни та покращення. Найбільш активні розробники із спільноти зможуть брати участь у прийнятті рішень.

Розробники заявляють, що FoundationDB є однією з добре протестованих і надійних СУБД, що підтверджується активним застосуванням даної системи в інфраструктурі Apple і деяких інших великих компаній. FoundationDB дозволяє створювати сховища для обробки великих наборів структурованих даних, розподілених на вузлах кластера з типових серверів. Для забезпечення стійкості до відмови застосовується реплікація даних на кілька вузлів.

Розподілене сховище засноване на архітектурі "shared-nothing", в якій кожен вузол є незалежною і самодостатньою ланкою, а вся система позбавлена ​​єдиної точки відмови. Сховище добре підходить до навантажень з великою кількістю операцій читання/запису, але також забезпечує відмінну продуктивність і в умовах, в яких переважають операції запису. Взаємодія із СУБД виробляється за допомогою API та біндингу для різних мов програмування (C/C++, Python, Perl, Ruby, Java, Go, Node.js, PHP).

Важливою особливістю FoundationDB є надання дуже ефективного низькорівневого інтерфейсу, що дозволяє будь-яким іншим системам, використовувати FoundationDB для розподіленого зберігання інформації в узгодженому стані. Наприклад, на базі FoundationDB можуть бути підготовлені фронтенди для великих універсальних СУБД, для зберігання різних моделей даних, для застосування різних мов формування запитів (наприклад, SQL і документо-орієнтовані системи), для зберігання метаданих у розподілених ФС, для організації розподілених черг завдань і т.п.

На системі розробника СУБД FoundationDB може бути запущена в одновузловому режимі (single-server), який потім може бути розширений до кластера (для додавання нового вузла достатньо скопіювати на новий вузол файл fdb.cluster з вузла, що вже працює).

Основні можливості:

  • Мультиморобне сховище, що дозволяє зберігати будь-які типи даних в одній базі даних. Всі дані надійно зберігаються, розподіляються та реплікуються у низькорівневому поданні ключ/значення. Підтримується впорядковане збереження ключів, що дозволяє застосовувати ефективні вибірки діапазонів значень;
  • Підтримується два движки зберігання: ssd - зберігання даних на диску з використанням структури B-tree (сховище оптимізовано для SSD-накопичувачів), та memory - для зберігання даних у пам'яті зі скиданням лога транзакцій на диск;
  • Стійкість до збоїв та простота горизонтального масштабування. СУБД FoundationDB проста в установці, розширенні сховища та управлінні. СУБД має розподілену архітектуру, що дозволяє легко масштабуватись і на льоту обробляти збої, працюючи при цьому як єдина цільна транзакційна БД, що відповідає вимогам ACID;
  • У рамках транзакції може бути прочитано і записано довільне число ключів, що зберігаються на будь-яких вузлах кластера, але час життя транзакції не може перевищувати 5 секунд, а розмір не повинен перевищувати 10 Мб даних, що записуються. Розмір ключа не повинен перевищувати 10 Кб, розмір даних 100 Кб.
  • Забезпечення високої продуктивності на типовому устаткуванні. СУБД FoundationDB здатна справлятися з дуже жорсткими навантаженнями, вимагаючи мінімальних витрат на обладнання;
  • Готовність до промислового застосування. FoundationDB вже багато років застосовується у великих промислових інфраструктурах. Для тестування впроваджено спеціальну систему, засновану на движку детерміністичної симуляції.

 

Інші новини

Найкраща ціна