Alibaba oopbron PolarDB-verspreide databasis gebaseer op PostgreSQL

Alibaba, een van die grootste Chinese IT-maatskappye, het die bronkode van die verspreide DBMS PolarDB, gebaseer op PostgreSQL, oopgemaak. PolarDB brei die vermoëns van PostgreSQL uit met gereedskap vir verspreide databerging met integriteit en ondersteuning vir ACID-transaksies in die konteks van die hele globale databasis wat oor verskillende groepnodusse versprei is. PolarDB ondersteun ook verspreide SQL-navraagverwerking, fouttoleransie en oortollige databerging om inligting te herstel nadat een of meer nodusse misluk het. As jy jou berging moet uitbrei, kan jy eenvoudig nuwe nodusse by die groep voeg. Die kode is oop onder die Apache 2.0-lisensie.

PolarDB bestaan ​​uit twee komponente - uitbreidings en 'n stel pleisters vir PostgreSQL. Patches brei die vermoëns van die PostgreSQL-kern uit, en uitbreidings sluit komponente in wat afsonderlik van PostgreSQL geïmplementeer is, soos 'n verspreide transaksiebestuursmeganisme, globale dienste, 'n verspreide SQL-navraagverwerker, bykomende metadata, gereedskap vir groepbestuur, trosontplooiing en die vereenvoudiging van die migrasie van bestaande stelsels daaraan.

Die pleisters voeg by die PostgreSQL-kern 'n verspreide weergawe van die meganisme vir die beheer van parallelle toegang tot data met behulp van multiversion (MVCC, Multiversion concurrency control) vir verskillende isolasievlakke. Die meeste van die funksionaliteit van PolarDB is ingesluit in uitbreidings, wat die afhanklikheid van PostgreSQL verminder en die opdatering en implementering van oplossings wat op PolarDB gebaseer is vereenvoudig (dit vergemaklik die oorgang na nuwe weergawes van PostgreSQL en handhaaf volle versoenbaarheid met PostgreSQL). Om die cluster te bestuur, word die pgxc_ctl-gereedskapstel gebruik, gebaseer op 'n soortgelyke nut van PostgreSQL-XC en PostgreSQL-XL.

Daar is drie basiese komponente in 'n groepering: databasisnodusse (DN), groepbestuurder (CM) en transaksiebestuurdiens (TM). Boonop kan 'n proxy-ladingbalanseerder gebruik word. Elke komponent is 'n aparte proses en kan op 'n ander bediener uitgevoer word. Databasisnodusse bedien SQL-navrae van kliënte en tree terselfdertyd op as koördineerders van verspreide navraaguitvoering met die deelname van ander databasisnodusse. Die groepbestuurder monitor die toestand van elke databasisnodus, stoor die groepkonfigurasie en verskaf nutsmiddels vir die bestuur, rugsteun, lasbalansering, opdatering, begin en stop van nodusse. Die transaksiebestuurdiens is verantwoordelik vir die handhawing van algehele integriteit oor die hele groepering.

Alibaba oopbron PolarDB-verspreide databasis gebaseer op PostgreSQL

PolarDB is gebaseer op die Shared-nothing-verspreide rekenaarargitektuur, waarvolgens data versprei word wanneer dit op verskillende nodusse gestoor word, sonder om 'n gemeenskaplike berging vir alle nodusse te gebruik, en elke nodus is verantwoordelik vir die gedeelte van data wat daarmee geassosieer word en voer navrae uit wat verband hou met aan die data. Elke tabel word in dele verdeel (sharding) met behulp van hashing gebaseer op die primêre sleutel. As die versoek data strek wat op verskillende nodusse geleë is, word 'n verspreide transaksie-uitvoeringsenjin en transaksiekoördineerder geaktiveer om atomiteit, konsekwentheid, isolasie en betroubaarheid (ACID) te verseker.

Om fouttoleransie te verseker, word elke segment na ten minste drie nodusse gerepliseer. Om hulpbronne te bespaar, bevat die volledige data slegs twee replikas, en een is beperk tot die stoor van die terugskryflog (WAL). Een van die twee nodusse met volledige replikas word as die leier verkies en neem deel aan die verwerking van versoeke. Die tweede nodus dien as 'n spaarplek vir die betrokke datasegment, en die derde neem deel aan die keuse van die voorste nodus en kan gebruik word om inligting te herstel in die geval van mislukking van twee nodusse met volledige replikas. Data replikasie tussen cluster nodusse word georganiseer met behulp van die Paxos-algoritme, wat 'n konsekwente definisie van konsensus verseker in 'n netwerk met potensieel onbetroubare nodusse.

Daar word kennis geneem dat die volle funksionaliteit van die PolarDB DBMS beplan word om oor drie vrystellings geopenbaar te word: In die eerste weergawe sal gereedskap vir replikasie, hoë beskikbaarheid en groepbestuur gepubliseer word. Die tweede vrystelling sal 'n verspreide transaksie-uitvoeringstelsel bevat wat kruis-node ACID en verspreide SQL-uitvoering ondersteun. Die derde vrystelling sal 'n inprop vir PostgreSQL en gereedskap vir buigsame dataverspreiding oor nodusse insluit, insluitend aanpasbare plasing van segmente om optimale werkverrigting te behaal en die vermoë om die groep uit te brei deur nuwe nodusse by te voeg.

Bron: opennet.ru

Voeg 'n opmerking