Alibaba го отвори кодот за PolarDB, дистрибуирана DBMS базирана на PostgreSQL.

Alibaba, една од најголемите кинески ИТ компании, го отвори изворниот код на дистрибуираниот DBMS PolarDB, базиран на PostgreSQL. PolarDB ги проширува можностите на PostgreSQL со алатки за дистрибуирано складирање податоци со интегритет и поддршка за ACID трансакции во контекст на целата глобална база на податоци дистрибуирана низ различни кластерски јазли. PolarDB, исто така, поддржува дистрибуирана SQL обработка на барања, толеранција на грешки и излишно складирање на податоци за враќање на информации откако еден или повеќе јазли не успеат. Ако треба да го проширите складирањето, можете едноставно да додадете нови јазли во кластерот. Кодот е отворен под лиценцата Apache 2.0.

PolarDB се состои од две компоненти - екстензии и збир на закрпи за PostgreSQL. Закрпи ги прошируваат можностите на јадрото PostgreSQL, а екстензии вклучуваат компоненти имплементирани одделно од PostgreSQL, како што се механизам за управување со дистрибуирани трансакции, глобални услуги, дистрибуиран SQL процесор за пребарување, дополнителни метаподатоци, алатки за управување со кластерот, распоредување кластер и поедноставување миграцијата на постоечките системи кон неа.

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

Постојат три основни компоненти во кластерот: јазли на база на податоци (DN), менаџер на кластери (CM) и услуга за управување со трансакции (TM). Дополнително, може да се користи прокси-баланс на оптоварување. Секоја компонента е посебен процес и може да се извршува на различен сервер. Јазлите на базата на податоци служат SQL барања од клиентите и во исто време дејствуваат како координатори на дистрибуираното извршување на барањето со учество на други јазли на базата на податоци. Менаџерот на кластерот ја следи состојбата на секој јазол на базата на податоци, ја складира конфигурацијата на кластерот и обезбедува алатки за управување, правење резервна копија, балансирање на оптоварување, ажурирање, стартување и запирање на јазлите. Услугата за управување со трансакции е одговорна за одржување на целокупниот интегритет низ целиот кластер.

Alibaba го отвори кодот за PolarDB, дистрибуирана DBMS базирана на PostgreSQL.

PolarDB се заснова на архитектурата за дистрибуирана пресметување Shared-nothing, според која податоците се дистрибуираат кога се складираат на различни јазли, без да се користи заедничко складирање за сите јазли, и секој јазол е одговорен за делот од податоците поврзани со него и врши прашања поврзани со на податоците. Секоја табела е поделена на делови (шердирање) со користење на хеширање врз основа на примарниот клуч. Ако барањето опфаќа податоци лоцирани на различни јазли, дистрибуираниот механизам за извршување трансакција и координаторот на трансакцијата се активираат за да се обезбеди атомност, конзистентност, изолација и доверливост (ACID).

За да се обезбеди толеранција на грешки, секој сегмент се реплицира на најмалку три јазли. За да се заштедат ресурси, целосните податоци вклучуваат само две реплики, а едната е ограничена на складирање на дневникот за враќање назад (WAL). Еден од двата јазли со целосни реплики е избран за водач и учествува во обработката на барањата. Вториот јазол делува како резерва за предметниот сегмент на податоци, а третиот учествува во изборот на водечкиот јазол и може да се користи за враќање на информации во случај на неуспех на два јазли со целосни реплики. Репликацијата на податоците помеѓу јазлите на кластерот е организирана со користење на алгоритмот Paxos, кој обезбедува доследна дефиниција на консензус во мрежа со потенцијално несигурни јазли.

Забележано е дека целосната функционалност на PolarDB DBMS се планира да се открие во три изданија: Во првата верзија ќе бидат објавени алатки за репликација, висока достапност и управување со кластери. Второто издание ќе има дистрибуиран систем за извршување трансакции кој поддржува вкрстени јазли ACID и дистрибуирани SQL извршување. Третото издание ќе вклучува приклучок за PostgreSQL и алатки за флексибилна дистрибуција на податоци низ јазлите, вклучително и адаптивно поставување на сегменти за постигнување оптимални перформанси и можност за проширување на кластерот со додавање нови јазли.

Извор: opennet.ru

Додадете коментар