Alibaba-k PolarDBrako kodea ireki du, PostgreSQL-n oinarritutako DBMS banatua.

Alibabak, Txinako IT enpresa handienetako batek, banatutako PolarDB DBMSaren iturburu-kodea ireki du, PostgreSQL-n oinarrituta. PolarDB-k PostgreSQL-ren gaitasunak zabaltzen ditu datu banatuak biltegiratzeko tresnekin, osotasunarekin eta ACID transakzioetarako laguntzarekin, kluster nodo ezberdinetan banatutako datu-base global osoaren testuinguruan. PolarDB-k SQL kontsulten prozesaketa banatua, akatsen tolerantzia eta datuen biltegiratze erredundantea ere onartzen ditu, nodo batek edo gehiagok huts egin ondoren informazioa berreskuratzeko. Biltegiratzea zabaldu behar baduzu, nodo berriak gehi ditzakezu clusterra. Kodea irekita dago Apache 2.0 lizentziarekin.

PolarDB bi osagai ditu: luzapenak eta PostgreSQL-rako adabaki multzo bat. Adabakiek PostgreSQL nukleoaren gaitasunak zabaltzen dituzte, eta luzapenek PostgreSQL-tik bereizita inplementatutako osagaiak barne hartzen dituzte, hala nola transakzioen kudeaketa-mekanismo banatua, zerbitzu globalak, SQL kontsulta-prozesadore banatua, metadatu osagarriak, klusterra kudeatzeko tresnak, kluster bat zabaltzea eta sinplifikatzea. lehendik dauden sistemen migrazioa.

Adabakiek PostgreSQL nukleoari datuetarako sarbide paraleloa kontrolatzeko mekanismoaren bertsio banatua gehitzen diote multibertsioa erabiliz (MVCC, Multiversion konkurrentzia kontrola) isolamendu maila desberdinetarako. PolarDB-ren funtzionalitate gehienak luzapenetan sartzen dira, eta horrek PostgreSQLekiko menpekotasuna murrizten du eta PolarDBn oinarritutako soluzioen eguneratzea eta ezarpena errazten du (PostgreSQL-ren bertsio berrietarako trantsizioa errazten du eta PostgreSQL-rekin bateragarritasun osoa mantentzen du). Klusterra kudeatzeko, pgxc_ctl tresna-kit bat erabiltzen da, PostgreSQL-XC eta PostgreSQL-XL-en antzeko erabilgarritasun batean oinarrituta.

Kluster batean oinarrizko hiru osagai daude: datu-base-nodoak (DN), kluster kudeatzailea (CM) eta transakzioen kudeaketa zerbitzua (TM). Gainera, proxy karga-orekatzailea erabil daiteke. Osagai bakoitza prozesu bereizia da eta zerbitzari ezberdin batean exekutatu daiteke. Datu-base-nodoek bezeroen SQL kontsultak zerbitzatzen dituzte eta, aldi berean, kontsulta banatuen exekuzio-koordinatzaile gisa jarduten dute beste datu-base-nodo batzuen parte-hartzearekin. Kluster-kudeatzaileak datu-base-nodo bakoitzaren egoera kontrolatzen du, klusterraren konfigurazioa gordetzen du eta nodoak kudeatzeko, babeskopiak egiteko, karga orekatzeko, eguneratzeko, abiarazteko eta gelditzeko tresnak eskaintzen ditu. Transakzioen kudeaketa zerbitzua kluster osoan osotasun orokorra mantentzeaz arduratzen da.

Alibaba-k PolarDBrako kodea ireki du, PostgreSQL-n oinarritutako DBMS banatua.

PolarDB Shared-nothing banatutako informatika-arkitekturan oinarritzen da, zeinaren arabera datuak nodo ezberdinetan biltegiratzen direnean banatzen dira, nodo guztien biltegiratze komun bat erabili gabe, eta nodo bakoitza harekin lotutako datuen zatiaren erantzule da eta erlazionatutako kontsultak egiten ditu. datuetara. Taula bakoitza zatitan banatzen da (sharding) gako nagusian oinarritutako hashing erabiliz. Eskaerak nodo desberdinetan kokatutako datuak hartzen baditu, transakzioen exekuzio mekanismo banatua eta transakzio-koordinatzailea aktibatzen dira atomotasuna, koherentzia, isolamendua eta fidagarritasuna (ACID) bermatzeko.

Akatsen tolerantzia bermatzeko, segmentu bakoitza gutxienez hiru nodotan errepikatzen da. Baliabideak aurrezteko, datu osoek bi erreplika baino ez dituzte barne hartzen, eta bat idazteko erregistroa (WAL) gordetzera mugatzen da. Erreplika osoak dituzten bi nodoetako bat lider gisa hautatzen da eta eskaerak prozesatzen parte hartzen du. Bigarren nodoak kasuan kasuko datu-segmentuaren ordezko gisa jokatzen du, eta hirugarrenak nodo nagusiaren aukeraketan parte hartzen du eta informazioa berreskuratzeko erabil daiteke erreplika osoak dituzten bi nodoren hutsegiteen kasuan. Kluster-nodoen arteko datuen erreplikazioa Paxos algoritmoa erabiliz antolatzen da, potentzialki fidagarriak ez diren nodoak dituen sare batean adostasunaren definizio koherentea bermatzen duena.

Nabarmendu da PolarDB DBMSren funtzionaltasun osoa hiru bertsiotan ezagutaraztea aurreikusita dagoela: Lehenengo bertsioan, erreplikaziorako, erabilgarritasun handiko eta kluster kudeaketarako tresnak argitaratuko dira. Bigarren bertsioak transakzioen exekuzio sistema banatuko du, nodoen arteko ACID eta banatutako SQL exekuzioa onartzen dituena. Hirugarren bertsioak PostgreSQL-rako plugin bat eta nodoen artean datu malguak banatzeko tresnak izango ditu, segmentuen kokapen moldagarria barne, errendimendu optimoa lortzeko eta klusterra nodo berriak gehituz zabaltzeko gaitasuna barne.

Iturria: opennet.ru

Gehitu iruzkin berria