Alibaba je odprla kodo za PolarDB, distribuirano DBMS, ki temelji na PostgreSQL.

Alibaba, eno največjih kitajskih IT podjetij, je odprlo izvorno kodo distribuiranega DBMS PolarDB, ki temelji na PostgreSQL. PolarDB razširja zmožnosti PostgreSQL z orodji za porazdeljeno shranjevanje podatkov s celovitostjo in podporo za transakcije ACID v kontekstu celotne globalne baze podatkov, porazdeljene po različnih vozliščih gruče. PolarDB podpira tudi porazdeljeno obdelavo poizvedb SQL, toleranco napak in redundantno shranjevanje podatkov za obnovitev informacij po odpovedi enega ali več vozlišč. Če morate razširiti svoj prostor za shranjevanje, lahko preprosto dodate nova vozlišča v gručo. Koda je odprta pod licenco Apache 2.0.

PolarDB je sestavljen iz dveh komponent - razširitev in nabora popravkov za PostgreSQL. Popravki razširjajo zmožnosti jedra PostgreSQL, razširitve pa vključujejo komponente, implementirane ločeno od PostgreSQL, kot so porazdeljeni mehanizem za upravljanje transakcij, globalne storitve, porazdeljeni procesor poizvedb SQL, dodatni metapodatki, orodja za upravljanje gruče, uvajanje gruče in poenostavitev selitve obstoječih sistemov.

Popravki dodajajo jedru PostgreSQL porazdeljeno različico mehanizma za nadzor vzporednega dostopa do podatkov z uporabo multiverzije (MVCC, Multiversion concurrency control) za različne ravni izolacije. Večina funkcionalnosti PolarDB je vključenih v razširitve, kar zmanjšuje odvisnost od PostgreSQL in poenostavlja posodabljanje in implementacijo rešitev, ki temeljijo na PolarDB (poenostavlja prehod na nove različice PostgreSQL in ohranja popolno združljivost s PostgreSQL). Za upravljanje gruče se uporablja komplet orodij pgxc_ctl, ki temelji na podobnem pripomočku iz PostgreSQL-XC in PostgreSQL-XL.

V gruči so tri osnovne komponente: vozlišča baze podatkov (DN), upravitelj gruče (CM) in storitev upravljanja transakcij (TM). Poleg tega je mogoče uporabiti izravnalnik obremenitve proxy. Vsaka komponenta je ločen proces in se lahko izvaja na drugem strežniku. Vozlišča baze podatkov služijo poizvedbam SQL od strank in hkrati delujejo kot koordinatorji porazdeljenega izvajanja poizvedb s sodelovanjem drugih vozlišč baze podatkov. Upravitelj gruče spremlja stanje vsakega vozlišča baze podatkov, shranjuje konfiguracijo gruče in nudi orodja za upravljanje, varnostno kopiranje, uravnoteženje obremenitve, posodabljanje, zagon in zaustavitev vozlišč. Storitev upravljanja transakcij je odgovorna za vzdrževanje splošne celovitosti v celotni gruči.

Alibaba je odprla kodo za PolarDB, distribuirano DBMS, ki temelji na PostgreSQL.

PolarDB temelji na porazdeljeni računalniški arhitekturi Shared-nothing, v skladu s katero se podatki porazdelijo, ko so shranjeni na različnih vozliščih, brez uporabe skupnega pomnilnika za vsa vozlišča, vsako vozlišče pa je odgovorno za del podatkov, povezanih z njim, in izvaja poizvedbe, povezane do podatkov. Vsaka tabela je razdeljena na dele (sharding) z zgoščevanjem na podlagi primarnega ključa. Če zahteva obsega podatke, ki se nahajajo na različnih vozliščih, se aktivirata mehanizem za porazdeljeno izvajanje transakcij in koordinator transakcij, da zagotovita atomičnost, doslednost, izolacijo in zanesljivost (ACID).

Da bi zagotovili odpornost na napake, je vsak segment podvojen na vsaj tri vozlišča. Zaradi varčevanja z viri celotni podatki vključujejo le dve repliki, ena pa je omejena na shranjevanje dnevnika povratnega zapisovanja (WAL). Eno od dveh vozlišč s polnimi replikami je izbrano za vodjo in sodeluje pri obdelavi zahtev. Drugo vozlišče deluje kot rezerva za zadevni segment podatkov, tretje pa sodeluje pri izbiri vodilnega vozlišča in se lahko uporablja za obnovitev informacij v primeru okvare dveh vozlišč s polnimi replikami. Replikacija podatkov med vozlišči gruče je organizirana z uporabo algoritma Paxos, ki zagotavlja konsistentno definicijo soglasja v omrežju s potencialno nezanesljivimi vozlišči.

Opozoriti je treba, da je načrtovana razkritje celotne funkcionalnosti PolarDB DBMS v treh izdajah: V prvi različici bodo objavljena orodja za replikacijo, visoko razpoložljivost in upravljanje gruče. Druga izdaja bo vsebovala sistem za porazdeljeno izvajanje transakcij, ki podpira ACID med vozlišči in porazdeljeno izvajanje SQL. Tretja izdaja bo vključevala vtičnik za PostgreSQL in orodja za prilagodljivo distribucijo podatkov po vozliščih, vključno s prilagodljivo postavitvijo segmentov za doseganje optimalne zmogljivosti in možnostjo razširitve gruče z dodajanjem novih vozlišč.

Vir: opennet.ru

Dodaj komentar