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

Alibaba відкрив вихідні тексти розподіленої СУБД PolarDB

Alibaba відкрила вихідний код розподіленої СКБД PolarDB

Alibaba відкрила вихідний код розподіленої СКБД PolarDB , заснованої на PostgreSQL. PolarDB розширює можливості PostgreSQL з розподіленим сховищем даних з цілісністю і підтримкою транзакцій ACID в контексті всієї глобальної бази даних, розподіленої по різних вузлах кластера. PolarDB також підтримує розподілену обробку SQL-запитів, відмовостійкість і резервне зберігання даних для поповнення інформації після виходу з ладу одного або декількох вузлів. Якщо вам потрібно розширити сховище, ви просто додаєте нові вузли до кластера. Код відкритий під ліцензією Apache 2.0.

PolarDB складається з двох компонентів - розширень і набору патчів PostgreSQL. Патчі розширюють можливості ядра PostgreSQL, а розширення включають в себе компоненти, реалізовані окремо від PostgreSQL, такі як механізм управління розподіленими транзакціями, глобальні сервіси, розподілений обробник SQL-запитів, додаткові метадані, інструменти для управління кластером, розгортання кластера і спрощення міграції в нього існуючих систем.

Патчі додають в ядро PostgreSQL розподілену версію механізму мультиверсійного контролю паралельності (MVCC) для різних рівнів ізоляції. Велика частина функціоналу PolarDB розширена, що знижує залежність від PostgreSQL і спрощує оновлення і реалізацію рішень на базі PolarDB (спрощує перехід на нові версії PostgreSQL і збереження повної сумісності з PostgreSQL). Для управління кластером використовується інструментарій pgxc_ctl, заснований на аналогічній утиліті від PostgreSQL-XC і PostgreSQL-XL.

Кластер має три основні компоненти: вузли баз даних (DNs), менеджер кластерів (CM) та служба управління транзакціями (TM). Крім того, можна ввімкнути балансувальник завантаження проксі- сервера. Кожен з компонентів є окремим процесом і може запускатися на різних фізичних серверах. Вузли баз даних обслуговують SQL-запити від клієнтів і одночасно виступають в ролі координаторів виконання розподілених запитів за участю інших вузлів бази даних. Менеджер кластерів відстежує стан кожного вузла бази даних, зберігає конфігурацію кластера і надає інструменти для управління, резервного копіювання, балансування, оновлення, запуску та зупинки вузлів. Служба управління транзакціями відповідає за підтримку загальної цілісності по всьому кластеру.

PolarDB заснована на розподіленій обчислювальній архітектурі Shared-nothing, згідно з якою дані розподіляються при зберіганні на різних вузлах, без використання сховища, загального для всіх вузлів, а кожен вузол відповідає за пов'язану з ним порцію даних і виконує запити, пов'язані з даними. Кожна таблиця розрізняється за допомогою хешування первинного ключа. Якщо запит охоплює дані, розміщені на різних вузлах, для забезпечення атомарності, узгодженості, ізоляції та надійності (ACID) підключено механізм виконання розподілених транзакцій і координатор транзакцій.

Для відмовостійкості кожен сегмент реплікується як мінімум на три вузли. Для економії ресурсів повні дані включають в себе тільки дві репліки, а одна обмежується зберіганням ледачого журналу запису (WAL). Один з двох вузлів з повними репліками вибирається в якості лідера і бере участь в обробці запитів. Другий вузол виступає в якості резервної копії для розглянутого сегмента даних, а третій бере участь у виборі ведучого вузла і може бути використаний для відновлення інформації в разі виходу з ладу двох вузлів з повними репліками. Реплікація даних між вузлами кластера організована за допомогою алгоритму Paxos, який забезпечує послідовне визначення консенсусу в мережі з потенційно ненадійними вузлами.

Зазначається, що повний функціонал СКБД PolarDB планується розкрити в рамках трьох релізів: У першій версії будуть опубліковані інструменти реплікації, високої доступності та управління кластерами. У другому випуску буде реалізована розподілена система виконання транзакцій, яка підтримує ACID на рівні різних вузлів і розподілене виконання SQL. Третій випуск включатиме плагін до PostgreSQL та інструменти для гнучкого розподілу даних між вузлами, включаючи адаптивне розміщення осколків для оптимальної продуктивності та можливість розширення кластера за рахунок додавання нових вузлів.

Інші новини