Alibaba otvorila kód pre PolarDB, distribuovaný DBMS založený na PostgreSQL.

Alibaba, jedna z najväčších čínskych IT spoločností, otvorila zdrojový kód distribuovaného DBMS PolarDB, založeného na PostgreSQL. PolarDB rozširuje možnosti PostgreSQL o nástroje pre distribuované ukladanie dát s integritou a podporou ACID transakcií v kontexte celej globálnej databázy distribuovanej cez rôzne uzly klastra. PolarDB tiež podporuje distribuované spracovanie SQL dotazov, odolnosť voči chybám a redundantné ukladanie dát na obnovu informácií po zlyhaní jedného alebo viacerých uzlov. Ak potrebujete rozšíriť úložisko, môžete do klastra jednoducho pridať nové uzly. Kód je otvorený pod licenciou Apache 2.0.

PolarDB pozostáva z dvoch komponentov – rozšírení a sady záplat pre PostgreSQL. Opravy rozširujú možnosti jadra PostgreSQL a rozšírenia zahŕňajú komponenty implementované oddelene od PostgreSQL, ako je mechanizmus správy distribuovaných transakcií, globálne služby, distribuovaný procesor dotazov SQL, ďalšie metadáta, nástroje na správu klastra, nasadenie klastra a zjednodušenie migráciu existujúcich systémov naň.

Záplaty pridávajú k jadru PostgreSQL distribuovanú verziu mechanizmu na riadenie paralelného prístupu k údajom pomocou multiverzie (MVCC, Multiversion concurrency control) pre rôzne úrovne izolácie. Väčšina funkcionality PolarDB je zahrnutá v rozšíreniach, čo znižuje závislosť na PostgreSQL a zjednodušuje aktualizáciu a implementáciu riešení založených na PolarDB (zjednodušuje prechod na nové verzie PostgreSQL a zachovanie plnej kompatibility s PostgreSQL). Na správu klastra sa používa súprava nástrojov pgxc_ctl, založená na podobnej utilite z PostgreSQL-XC a PostgreSQL-XL.

V klastri sú tri základné komponenty: databázové uzly (DN), správca klastra (CM) a služba riadenia transakcií (TM). Okrem toho je možné použiť nástroj na vyrovnávanie zaťaženia proxy. Každý komponent je samostatný proces a môže byť spustený na inom serveri. Databázové uzly obsluhujú SQL dotazy od klientov a zároveň pôsobia ako koordinátori vykonávania distribuovaných dotazov za účasti ostatných databázových uzlov. Správca klastra monitoruje stav každého databázového uzla, ukladá konfiguráciu klastra a poskytuje nástroje na správu, zálohovanie, vyrovnávanie záťaže, aktualizáciu, spúšťanie a zastavovanie uzlov. Služba riadenia transakcií je zodpovedná za udržiavanie celkovej integrity v rámci celého klastra.

Alibaba otvorila kód pre PolarDB, distribuovaný DBMS založený na PostgreSQL.

PolarDB je založený na distribuovanej výpočtovej architektúre Shared-nothing, podľa ktorej sú dáta distribuované, keď sú uložené na rôznych uzloch, bez použitia spoločného úložiska pre všetky uzly a každý uzol je zodpovedný za časť dát, ktorá je s ním spojená, a vykonáva súvisiace dotazy. k údajom. Každá tabuľka je rozdelená na časti (sharding) pomocou hashovania na základe primárneho kľúča. Ak požiadavka zahŕňa údaje umiestnené na rôznych uzloch, aktivuje sa mechanizmus vykonávania distribuovaných transakcií a koordinátor transakcií, aby sa zabezpečila atomicita, konzistencia, izolácia a spoľahlivosť (ACID).

Aby sa zabezpečila odolnosť voči chybám, každý segment sa replikuje aspoň na tri uzly. Aby sa ušetrili prostriedky, úplné údaje obsahujú iba dve repliky a jedna je obmedzená na uloženie protokolu spätného zápisu (WAL). Jeden z dvoch uzlov s úplnými replikami je zvolený ako vedúci a podieľa sa na spracovaní požiadaviek. Druhý uzol funguje ako náhradný pre príslušný dátový segment a tretí sa zúčastňuje výberu vedúceho uzla a môže sa použiť na obnovenie informácií v prípade zlyhania dvoch uzlov s úplnými replikami. Replikácia údajov medzi uzlami klastra je organizovaná pomocou algoritmu Paxos, ktorý zabezpečuje konzistentnú definíciu konsenzu v sieti s potenciálne nespoľahlivými uzlami.

Je potrebné poznamenať, že úplná funkčnosť PolarDB DBMS sa plánuje odhaliť v troch vydaniach: V prvej verzii budú zverejnené nástroje na replikáciu, vysokú dostupnosť a správu klastrov. Druhé vydanie bude obsahovať distribuovaný systém vykonávania transakcií, ktorý podporuje ACID medzi uzlami a distribuované spúšťanie SQL. Tretie vydanie bude obsahovať doplnok pre PostgreSQL a nástroje na flexibilnú distribúciu údajov medzi uzlami, vrátane adaptívneho umiestňovania segmentov na dosiahnutie optimálneho výkonu a možnosti rozšírenia klastra pridávaním nových uzlov.

Zdroj: opennet.ru

Pridať komentár