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

Alibaba, jedna od najvećih kineskih IT kompanija, otvorila je izvorni kod distribuiranog DBMS-a PolarDB, temeljenog na PostgreSQL-u. PolarDB proširuje mogućnosti PostgreSQL-a s alatima za distribuiranu pohranu podataka s integritetom i podrškom za ACID transakcije u kontekstu cijele globalne baze podataka raspoređene po različitim čvorovima klastera. PolarDB također podržava distribuiranu obradu SQL upita, toleranciju grešaka i redundantnu pohranu podataka za oporavak informacija nakon što jedan ili više čvorova otkaže. 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 - proširenja 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 distribuirani mehanizam upravljanja transakcijama, globalne usluge, distribuirani SQL procesor upita, dodatni metapodaci, alati za upravljanje klasterom, postavljanje klastera i pojednostavljenje migracija postojećih sustava na njega.

Zakrpe dodaju PostgreSQL jezgri distribuiranu verziju mehanizma za kontrolu paralelnog pristupa podacima korištenjem multiverzije (MVCC, Multiversion concurrency control) za različite razine izolacije. Većina funkcionalnosti PolarDB-a uključena je u proširenja, što smanjuje ovisnost o PostgreSQL-u i pojednostavljuje ažuriranje i implementaciju rješenja temeljenih na PolarDB-u (pojednostavljuje prijelaz na nove verzije PostgreSQL-a i zadržavanje pune kompatibilnosti s PostgreSQL-om). Za upravljanje klasterom koristi se alat pgxc_ctl, temeljen 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). Osim toga, može se koristiti proxy balanser opterećenja. Svaka komponenta je zaseban proces i može se pokrenuti na drugom poslužitelju. Čvorovi baze podataka poslužuju SQL upite klijenata i istovremeno djeluju kao koordinatori distribuiranog izvršavanja upita uz sudjelovanje drugih čvorova baze podataka. Upravitelj klastera prati stanje svakog čvora baze podataka, pohranjuje konfiguraciju klastera i pruža alate za upravljanje, sigurnosno kopiranje, balansiranje opterećenja, ažuriranje, pokretanje i zaustavljanje čvorova. Usluga upravljanja transakcijama odgovorna je za održavanje ukupnog integriteta u cijelom klasteru.

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

PolarDB se temelji na Shared-nothing distribuiranoj računalnoj arhitekturi, prema kojoj se podaci distribuiraju kada su pohranjeni na različitim čvorovima, bez korištenja zajedničke pohrane za sve čvorove, a svaki čvor je odgovoran za dio podataka koji je s njim povezan i izvršava upite vezane uz na podatke. Svaka se tablica dijeli na dijelove (sharding) pomoću hashiranja na temelju primarnog ključa. Ako zahtjev obuhvaća podatke koji se nalaze na različitim čvorovima, aktiviraju se distribuirani mehanizam izvršenja transakcije i koordinator transakcije kako bi se osigurala atomičnost, dosljednost, izolacija i pouzdanost (ACID).

Kako bi se osigurala tolerancija na greške, svaki segment se replicira na najmanje tri čvora. Kako bi se uštedjeli resursi, potpuni podaci uključuju samo dvije replike, a jedna je ograničena na pohranjivanje dnevnika povratnog pisanja (WAL). Jedan od dva čvora s punim replikama bira se kao voditelj i sudjeluje u obradi zahtjeva. Drugi čvor služi kao rezervni za predmetni segment podataka, a treći sudjeluje u odabiru vodećeg čvora i može se koristiti za vraćanje informacija u slučaju kvara dvaju čvorova s ​​punim replikama. Replikacija podataka između čvorova klastera organizirana je pomoću algoritma Paxos, koji osigurava dosljednu definiciju konsenzusa u mreži s potencijalno nepouzdanim čvorovima.

Napominje se da se puna funkcionalnost PolarDB DBMS-a planira otkriti kroz tri izdanja: U prvoj verziji bit će objavljeni alati za replikaciju, visoku dostupnost i upravljanje klasterom. Drugo izdanje sadržavat će distribuirani sustav izvršavanja transakcija koji podržava ACID između čvorova i distribuirano izvršavanje SQL-a. Treće izdanje uključivat će dodatak za PostgreSQL i alate za fleksibilnu distribuciju podataka između čvorova, uključujući prilagodljivo postavljanje segmenata za postizanje optimalne izvedbe i mogućnost proširenja klastera dodavanjem novih čvorova.

Izvor: opennet.ru

Dodajte komentar