Alibaba je otvorila kod za PolarDB, distribuirani DBMS baziran na PostgreSQL-u.

Alibaba, jedna od najvećih kineskih IT kompanija, otvorila je izvorni kod distribuiranog DBMS-a PolarDB, zasnovanog na PostgreSQL-u. PolarDB proširuje mogućnosti PostgreSQL-a pomoću alata za distribuirano skladištenje podataka sa integritetom i podrškom za ACID transakcije u kontekstu cijele globalne baze podataka distribuirane kroz različite čvorove klastera. PolarDB također podržava distribuiranu obradu SQL upita, toleranciju grešaka i redundantno skladištenje podataka za vraćanje informacija nakon što jedan ili više čvorova ne uspije. Ako trebate proširiti svoju pohranu, možete jednostavno dodati nove čvorove u klaster. Kod je otvoren pod licencom Apache 2.0.

PolarDB se sastoji od dvije komponente - ekstenzija i skupa zakrpa za PostgreSQL. Zakrpe proširuju mogućnosti PostgreSQL jezgre, a proširenja uključuju komponente implementirane odvojeno od PostgreSQL-a, kao što su mehanizam za upravljanje distribuiranim transakcijama, globalne usluge, distribuirani SQL procesor upita, dodatni metapodaci, alati za upravljanje klasterom, implementacija klastera i pojednostavljivanje migracije postojećih sistema.

Zakrpe dodaju PostgreSQL jezgru distribuiranu verziju mehanizma za kontrolu paralelnog pristupa podacima koristeći multiverzije (MVCC, Multiversion concurrency control) za različite nivoe izolacije. Većina funkcionalnosti PolarDB-a je uključena u ekstenzije, što smanjuje ovisnost o PostgreSQL-u i pojednostavljuje ažuriranje i implementaciju rješenja zasnovanih na PolarDB-u (pojednostavljuje prelazak na nove verzije PostgreSQL-a i održava punu kompatibilnost sa PostgreSQL-om). Za upravljanje klasterom koristi se pgxc_ctl set alata, zasnovan na sličnom uslužnom programu iz PostgreSQL-XC i PostgreSQL-XL.

Postoje tri osnovne komponente u klasteru: čvorovi baze podataka (DN), upravitelj klastera (CM) i usluga upravljanja transakcijama (TM). Dodatno, može se koristiti proxy balanser opterećenja. Svaka komponenta je zaseban proces i može se pokrenuti na drugom serveru. Čvorovi baze podataka služe SQL upitima od klijenata i istovremeno djeluju kao koordinatori izvršenja distribuiranog upita uz sudjelovanje drugih čvorova baze podataka. Upravitelj klastera prati stanje svakog čvora baze podataka, pohranjuje konfiguraciju klastera i pruža alate za upravljanje, pravljenje rezervnih kopija, balansiranje opterećenja, ažuriranje, pokretanje i zaustavljanje čvorova. Usluga upravljanja transakcijama je odgovorna za održavanje cjelokupnog integriteta u cijelom klasteru.

Alibaba je otvorila kod za PolarDB, distribuirani DBMS baziran na PostgreSQL-u.

PolarDB je baziran na distribuiranoj računarskoj arhitekturi bez zajedničkog korištenja, prema kojoj se podaci distribuiraju kada se pohranjuju na različitim čvorovima, bez korištenja zajedničke memorije za sve čvorove, a svaki čvor je odgovoran za dio podataka koji je s njim povezan i obavlja upite vezane za na podatke. Svaka tabela je podijeljena na dijelove (sharding) korištenjem heširanja na osnovu primarnog ključa. Ako zahtjev obuhvata podatke koji se nalaze na različitim čvorovima, aktiviraju se mehanizam za izvršenje distribuirane transakcije i koordinator transakcije kako bi se osigurala atomičnost, konzistentnost, izolacija i pouzdanost (ACID).

Da bi se osigurala tolerancija grešaka, svaki segment se replicira na najmanje tri čvora. Radi uštede resursa, kompletni podaci uključuju samo dvije replike, a jedna je ograničena na pohranjivanje dnevnika povratnog upisivanja (WAL). Jedan od dva čvora sa punim replikama se bira kao lider i učestvuje u obradi zahteva. Drugi čvor služi kao rezervni za dotični segment podataka, a treći učestvuje u izboru vodećeg čvora i može se koristiti za vraćanje informacija u slučaju kvara dva čvora sa punim replikama. Replikacija podataka između čvorova klastera organizirana je korištenjem Paxos algoritma, koji osigurava dosljednu definiciju konsenzusa u mreži s potencijalno nepouzdanim čvorovima.

Napominje se da je planirano da se puna funkcionalnost PolarDB DBMS otkrije kroz tri izdanja: U prvoj verziji biće objavljeni alati za replikaciju, visoku dostupnost i upravljanje klasterima. Drugo izdanje će sadržavati distribuirani sistem izvršavanja transakcija koji podržava ACID između čvorova i distribuirano SQL izvršavanje. Treće izdanje će uključivati ​​dodatak za PostgreSQL i alate za fleksibilnu distribuciju podataka kroz čvorove, uključujući prilagodljivo postavljanje segmenata za postizanje optimalnih performansi i mogućnost proširenja klastera dodavanjem novih čvorova.

izvor: opennet.ru

Dodajte komentar