Alibaba on avanud PostgreSQL-il põhineva hajutatud DBMS-i PolarDB koodi.

Hiina üks suurimaid IT-ettevõtteid Alibaba on avanud PostgreSQL-il põhineva hajutatud DBMS-i PolarDB lähtekoodi. PolarDB laiendab PostgreSQL-i võimalusi hajutatud andmete salvestamise tööriistadega koos terviklikkuse ja ACID-tehingute toega kogu globaalse andmebaasi kontekstis, mis on jaotatud erinevate klastri sõlmede vahel. PolarDB toetab ka hajutatud SQL-päringute töötlemist, tõrketaluvust ja üleliigset andmesalvestust teabe taastamiseks pärast ühe või mitme sõlme rikkeid. Kui teil on vaja oma salvestusruumi laiendada, saate lihtsalt klastrisse uusi sõlmi lisada. Kood on avatud Apache 2.0 litsentsi all.

PolarDB koosneb kahest komponendist - PostgreSQL-i laiendustest ja paikade komplektist. Plaastrid laiendavad PostgreSQL-i tuuma võimalusi ja laiendused hõlmavad PostgreSQL-ist eraldi rakendatud komponente, nagu hajutatud tehinguhaldusmehhanism, globaalsed teenused, hajutatud SQL-päringuprotsessor, täiendavad metaandmed, tööriistad klastri haldamiseks, klastri juurutamiseks ja lihtsustamiseks. olemasolevate süsteemide migreerimine sellele.

Plaastrid lisavad PostgreSQL-i tuumale mehhanismi hajutatud versiooni andmetele paralleeljuurdepääsu juhtimiseks, kasutades mitmeversiooni (MVCC, Multiversion concurrency control) erinevate isolatsioonitasemete jaoks. Suurem osa PolarDB funktsionaalsusest sisaldub laiendustes, mis vähendab sõltuvust PostgreSQL-ist ning lihtsustab PolarDB-l põhinevate lahenduste värskendamist ja juurutamist (lihtsustab üleminekut PostgreSQL-i uutele versioonidele ja täieliku ühilduvuse säilitamist PostgreSQL-iga). Klastri haldamiseks kasutatakse tööriistakomplekti pgxc_ctl, mis põhineb PostgreSQL-XC ja PostgreSQL-XL sarnasel utiliidil.

Klastris on kolm põhikomponenti: andmebaasisõlmed (DN), klastrihaldur (CM) ja tehinguhaldusteenus (TM). Lisaks saab kasutada puhverserveri koormuse tasakaalustajat. Iga komponent on eraldi protsess ja seda saab käivitada erinevas serveris. Andmebaasisõlmed teenindavad klientidelt SQL päringuid ja toimivad samal ajal hajutatud päringu täitmise koordinaatoritena, kus osalevad ka teised andmebaasisõlmed. Klastrihaldur jälgib iga andmebaasi sõlme olekut, salvestab klastri konfiguratsiooni ja pakub tööriistu sõlmede haldamiseks, varundamiseks, koormuse tasakaalustamiseks, värskendamiseks, käivitamiseks ja peatamiseks. Tehinguhaldusteenus vastutab kogu klastri üldise terviklikkuse säilitamise eest.

Alibaba on avanud PostgreSQL-il põhineva hajutatud DBMS-i PolarDB koodi.

PolarDB põhineb jagatud mittemidagi-jagatud andmetöötlusarhitektuuril, mille kohaselt jagatakse andmeid, kui neid salvestatakse erinevatesse sõlmedesse, kasutamata kõigi sõlmede jaoks ühist salvestusruumi, ning iga sõlm vastutab temaga seotud andmete osa eest ja täidab sellega seotud päringuid. andmetele. Iga tabel jagatakse osadeks (sharding), kasutades primaarvõtmel põhinevat räsimist. Kui päring hõlmab erinevates sõlmedes asuvaid andmeid, aktiveeritakse hajutatud tehingute täitmise mehhanism ja tehingu koordinaator, et tagada aatomilisus, järjepidevus, isolatsioon ja usaldusväärsus (ACID).

Veataluvuse tagamiseks kopeeritakse iga segment vähemalt kolme sõlmega. Ressursside säästmiseks sisaldavad täielikud andmed ainult kahte koopiat ja üks piirdub tagasikirjutuslogi (WAL) salvestamisega. Üks kahest täieliku koopiaga sõlmest valitakse juhiks ja osaleb päringute töötlemisel. Teine sõlm toimib kõnealuse andmesegmendi varuna ja kolmas osaleb juhtiva sõlme valimisel ja seda saab kasutada teabe taastamiseks kahe täieliku koopiaga sõlme rikke korral. Andmete replikatsioon klastri sõlmede vahel on korraldatud Paxose algoritmi abil, mis tagab konsensuse järjepideva määratluse potentsiaalselt ebausaldusväärsete sõlmedega võrgus.

Märgitakse, et PolarDB DBMS-i täielik funktsionaalsus on kavas avaldada kolme versiooni jooksul: Esimeses versioonis avaldatakse replikatsiooni, kõrge kättesaadavuse ja klastrite haldamise tööriistad. Teises versioonis on hajutatud tehingute täitmise süsteem, mis toetab sõlmedevahelist ACID-i ja hajutatud SQL-i täitmist. Kolmas väljalase sisaldab PostgreSQL-i pistikprogrammi ja tööriistu andmete paindlikuks jaotamiseks sõlmede vahel, sealhulgas segmentide adaptiivset paigutust optimaalse jõudluse saavutamiseks ja võimalust klastrit uute sõlmede lisamisega laiendada.

Allikas: opennet.ru

Lisa kommentaar