Alibaba отвори кода за PolarDB, разпределена СУБД, базирана на PostgreSQL.

Alibaba, една от най-големите китайски ИТ компании, отвори изходния код на разпределената СУБД PolarDB, базирана на PostgreSQL. PolarDB разширява възможностите на PostgreSQL с инструменти за разпределено съхранение на данни с интегритет и поддръжка за ACID транзакции в контекста на цялата глобална база данни, разпределена в различни клъстерни възли. PolarDB също поддържа разпределена обработка на SQL заявки, толерантност към грешки и излишно съхранение на данни за възстановяване на информация след повреда на един или повече възли. Ако трябва да разширите хранилището си, можете просто да добавите нови възли към клъстера. Кодът е отворен под лиценз Apache 2.0.

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

Пачовете добавят към ядрото на PostgreSQL разпределена версия на механизма за контролиране на паралелен достъп до данни с помощта на мултиверсия (MVCC, Multiversion concurrency control) за различни нива на изолация. По-голямата част от функционалността на PolarDB е включена в разширения, което намалява зависимостта от PostgreSQL и опростява актуализирането и внедряването на решения, базирани на PolarDB (опростява прехода към нови версии на PostgreSQL и поддържа пълна съвместимост с PostgreSQL). За управление на клъстера се използва инструментариумът pgxc_ctl, базиран на подобна помощна програма от PostgreSQL-XC и PostgreSQL-XL.

Има три основни компонента в клъстера: възли на база данни (DN), мениджър на клъстер (CM) и услуга за управление на транзакции (TM). Освен това може да се използва прокси балансьор на натоварването. Всеки компонент е отделен процес и може да се изпълнява на различен сървър. Възлите на базата данни обслужват SQL заявки от клиенти и в същото време действат като координатори на изпълнение на разпределени заявки с участието на други възли на база данни. Клъстерният мениджър следи състоянието на всеки възел на база данни, съхранява конфигурацията на клъстера и предоставя инструменти за управление, архивиране, балансиране на натоварването, актуализиране, стартиране и спиране на възли. Услугата за управление на транзакции е отговорна за поддържането на цялостната цялост в целия клъстер.

Alibaba отвори кода за PolarDB, разпределена СУБД, базирана на PostgreSQL.

PolarDB се основава на разпределената изчислителна архитектура Shared-nothing, според която данните се разпределят, когато се съхраняват на различни възли, без да се използва общо хранилище за всички възли, като всеки възел е отговорен за частта от данните, свързани с него, и изпълнява свързаните с него заявки към данните. Всяка таблица се разделя на части (шардинг) с помощта на хеширане въз основа на първичния ключ. Ако заявката обхваща данни, разположени на различни възли, се активират разпределен механизъм за изпълнение на транзакции и координатор на транзакции, за да се гарантира атомарност, последователност, изолация и надеждност (ACID).

За да се осигури толерантност към грешки, всеки сегмент се репликира към поне три възела. За да се спестят ресурси, пълните данни включват само две реплики, а едната е ограничена до съхраняване на журнала за обратно записване (WAL). Един от двата възела с пълни реплики се избира за лидер и участва в обработката на заявките. Вторият възел действа като резервен за въпросния сегмент от данни, а третият участва в избора на водещия възел и може да се използва за възстановяване на информация в случай на повреда на два възела с пълни реплики. Репликацията на данни между възлите на клъстера е организирана с помощта на алгоритъма Paxos, който осигурява последователна дефиниция на консенсус в мрежа с потенциално ненадеждни възли.

Отбелязва се, че пълната функционалност на СУБД PolarDB се планира да бъде разкрита в три версии: В първата версия ще бъдат публикувани инструменти за репликация, висока достъпност и управление на клъстери. Второто издание ще включва система за разпределено изпълнение на транзакции, която поддържа ACID между възли и разпределено SQL изпълнение. Третата версия ще включва плъгин за PostgreSQL и инструменти за гъвкаво разпределение на данни между възли, включително адаптивно разполагане на сегменти за постигане на оптимална производителност и възможност за разширяване на клъстера чрез добавяне на нови възли.

Източник: opennet.ru

Добавяне на нов коментар