Alibaba hat de koade iepene foar PolarDB, in ferspraat DBMS basearre op PostgreSQL.

Alibaba, ien fan 'e grutste Sineeske IT-bedriuwen, hat de boarnekoade iepene fan' e ferspraat DBMS PolarDB, basearre op PostgreSQL. PolarDB wreidet de mooglikheden fan PostgreSQL út mei ark foar ferdielde gegevensopslach mei yntegriteit en stipe foar ACID-transaksjes yn 'e kontekst fan' e heule globale database ferdield oer ferskate klusterknooppunten. PolarDB stipet ek ferdielde SQL-query-ferwurking, fouttolerânsje, en oerstallige gegevensopslach om ynformaasje te herstellen neidat ien of mear knooppunten mislearje. As jo ​​​​jo opslach moatte útwreidzje, kinne jo gewoan nije knopen tafoegje oan it kluster. De koade is iepen ûnder de Apache 2.0-lisinsje.

PolarDB bestiet út twa komponinten - tafoegings en in set patches foar PostgreSQL. Patches wreidzje de mooglikheden fan 'e PostgreSQL-kearn út, en tafoegings omfetsje komponinten dy't apart fan PostgreSQL ymplementearre binne, lykas in ferspraat transaksjebehearmeganisme, globale tsjinsten, in ferspraat SQL-query-prosessor, ekstra metadata, ark foar it behearen fan it kluster, it ynsetten fan in kluster, en ferienfâldigjen de migraasje fan besteande systemen nei it.

De patches tafoegje oan 'e PostgreSQL-kearn in ferspraat ferzje fan it meganisme foar it kontrolearjen fan parallelle tagong ta gegevens mei multiversion (MVCC, Multiversion concurrency control) foar ferskate isolaasjenivo's. It grutste part fan 'e funksjonaliteit fan PolarDB is opnaam yn útwreidingen, wat de ôfhinklikens fan PostgreSQL fermindert en it bywurkjen en ymplemintearjen fan oplossingen basearre op PolarDB ferienfâldiget (it ferienfâldiget de oergong nei nije ferzjes fan PostgreSQL en behâldt folsleine kompatibiliteit mei PostgreSQL). Om it kluster te behearjen, wurdt de pgxc_ctl toolkit brûkt, basearre op in ferlykber nut fan PostgreSQL-XC en PostgreSQL-XL.

D'r binne trije basiskomponinten yn in kluster: databankknooppunten (DN), klusterbehearder (CM) en transaksjebeheartsjinst (TM). Derneist kin in proxy-loadbalancer brûkt wurde. Elke komponint is in apart proses en kin wurde útfierd op in oare server. Databankknooppunten tsjinje SQL-fragen fan kliïnten en fungearje tagelyk as koördinators fan ferdielde query-útfiering mei de dielname fan oare databankknooppunten. De klusterbehearder kontrolearret de steat fan elke databankknooppunt, bewarret de klusterkonfiguraasje, en leveret ark foar it behearen, reservekopy, loadbalancing, bywurkjen, begjinnen en stopjen fan knooppunten. De tsjinst foar transaksjebehear is ferantwurdlik foar it behâld fan algemiene yntegriteit oer it heule kluster.

Alibaba hat de koade iepene foar PolarDB, in ferspraat DBMS basearre op PostgreSQL.

PolarDB is basearre op de Shared-nothing ferdielde komputerarsjitektuer, neffens hokker gegevens wurde ferdield as se opslein wurde op ferskate knooppunten, sûnder in mienskiplike opslach te brûken foar alle knooppunten, en elke knooppunt is ferantwurdlik foar it diel fan gegevens dy't dêrmei assosjearre binne en queries útfiert relatearre oan de gegevens. Eltse tabel wurdt sharded yn dielen (sharding) mei help fan hashing basearre op de primêre kaai. As it fersyk gegevens oerspant dy't op ferskate knopen lizze, wurde in ferspraat transaksje-útfiermeganisme en in transaksjekoördinator aktivearre om atomiteit, konsistinsje, isolaasje en betrouberens (ACID) te garandearjen.

Om fouttolerânsje te garandearjen, wurdt elk segmint nei op syn minst trije knopen replikearre. Om boarnen te bewarjen, omfetsje de folsleine gegevens mar twa replika's, en ien is beheind ta it bewarjen fan it weromskriuwlog (WAL). Ien fan de twa knopen mei folsleine replika's wurdt keazen as de lieder en docht mei oan it ferwurkjen fan fersiken. De twadde knoop fungearret as reserve foar it gegevenssegment yn kwestje, en de tredde nimt diel oan 'e seleksje fan' e liedende knooppunt en kin brûkt wurde om ynformaasje te herstellen yn gefal fan mislearring fan twa knooppunten mei folsleine replika's. Gegevensreplikaasje tusken klusterknooppunten wurdt organisearre mei it Paxos-algoritme, dat soarget foar in konsekwinte definysje fan konsensus yn in netwurk mei potinsjeel ûnbetroubere knopen.

It wurdt opmurken dat de folsleine funksjonaliteit fan 'e PolarDB DBMS is pland om te iepenbierjen oer trije releases: Yn' e earste ferzje wurde ark foar replikaasje, hege beskikberens en klusterbehear publisearre. De twadde release sil in ferspraat transaksje-útfiersysteem hawwe dat cross-node ACID en ferdielde SQL-útfiering stipet. De tredde release sil in plugin foar PostgreSQL en ark omfetsje foar fleksibele gegevensferdieling oer knopen, ynklusyf adaptive pleatsing fan segminten om optimale prestaasjes te berikken en de mooglikheid om it kluster út te wreidzjen troch nije knopen ta te foegjen.

Boarne: opennet.ru

Add a comment