Яндекс оприлюднив вихідний код своєї СУБД «YDB»

Нещодавно новина про це заявила Яндекс випустив вихідний код своєї СУБД «YDB», який реалізує підтримку діалекту SQL і транзакцій ACID.

СУБД був побудований з нуля і спочатку розроблявся з метою забезпечення відмовостійкості, автоматичне перемикання збоїв і масштабованість. Зазначимо, Яндекс запустив робочі кластери YDB, що включають понад 10 тисяч вузлів, які зберігають сотні петабайт даних і обслуговують мільйони розподілених транзакцій в секунду.

Основні новинки YDB

З особливостей, які виділяються з YDB, є використання реляційної моделі даних з таблицями YQL (YDB Query Language) використовується для запитів і визначення схеми даних, яка є діалект SQL, адаптований для роботи з великими розподіленими базами даних. При створенні схеми зберігання підтримується деревоподібне групування таблиць, що нагадує каталоги у файловій системі. Для роботи з даними у форматі JSON передбачено API.

Файл здатність створювати відмовостійкі конфігурації які продовжують функціонувати, коли диски, вузли, стійки й навіть окремі центри обробки даних виходять з ладу. YDB підтримує синхронне розгортання та реплікацію між трьома зонами доступності, зберігаючи при цьому стан кластера у разі відмови однієї із зон.

Підтримка доступу до даних за допомогою запитів сканування, призначених для виконання спеціальних аналітичних запитів до бази даних, які виконуються в режимі лише для читання і повертають потік grpc.

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

З інші особливості що виділяються:

  • Гнучка архітектура, яка дозволяє створювати різні сервіси поверх YDB, аж до віртуальних блочних пристроїв і постійних черг. Придатність для різних типів навантаження: OLTP і OLAP (аналітичні запити).
  • Підтримка багатокористувацьких (багатьох орендарів) і безсерверних конфігурацій.
  • Можливість аутентифікації клієнтів. Користувачі можуть створювати власні віртуальні кластери та бази даних на загальній спільній інфраструктурі, враховуючи споживання ресурсів з точки зору кількості запитів і розміру даних, або шляхом оренди/резервування певних обчислювальних ресурсів і місця для зберігання.
  • Можливість коригувати термін служби записів для автоматичного видалення застарілих даних.
  • Взаємодія з СУБД і подача запитів здійснюється за допомогою інтерфейсу командного рядка, інтегрованого веб-інтерфейсу або YDB SDK, який надає бібліотеки для C++, C# (.NET), Go, Java, Node.js, PHP і Python.
  • Автоматично відновлюватися після збоїв із мінімальною затримкою для програм і автоматично підтримувати задане резервування під час зберігання даних.
  • Автоматичне створення індексів на первинному ключі та можливість визначення вторинних індексів для підвищення ефективності довільного доступу до стовпців.
  • Горизонтальна масштабованість. У міру зростання навантаження та розміру збережених даних кластер можна розширити, просто підключивши нові вузли. Рівні обчислень і зберігання розділені, що дозволяє окремо масштабувати обчислення та сховище. Сама СУБД контролює рівномірний розподіл даних і навантаження з урахуванням наявних апаратних ресурсів. Можна реалізувати географічно розподілені конфігурації, які охоплюють декілька центрів обробки даних у різних частинах світу.
  • Підтримка моделі сильної узгодженості та транзакцій ACID під час обробки запитів, які охоплюють декілька вузлів і таблиць. Щоб підвищити продуктивність, ви можете вибірково вимкнути перевірку узгодженості.
  • Автоматична реплікація даних, автоматичне розділення (розбиття на розділи, шардінг) при збільшенні розміру або навантаження, а також автоматичне балансування завантаження та даних між вузлами.

Нарешті, слід зазначити, що YDB використовується в проектах Яндекса, код написаний на C/C++ і розповсюджується під ліцензією Apache 2.0, ви можете побачити вихідний код, а також докладніше про нього У наступному посиланні.


Зміст статті відповідає нашим принципам редакційна етика. Щоб повідомити про помилку, натисніть тут.

Будьте першим, щоб коментувати

Залиште свій коментар

Ваша електронна адреса не буде опублікований.

*

*

  1. Відповідальний за дані: Мігель Анхель Гатон
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.