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

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