Alibaba malfermis la kodon por PolarDB, distribuita DBMS bazita sur PostgreSQL.

Alibaba, unu el la plej grandaj ĉinaj IT-kompanioj, malfermis la fontkodon de la distribuita DBMS PolarDB, bazita sur PostgreSQL. PolarDB etendas la kapablojn de PostgreSQL per iloj por distribuita datumstokado kun integreco kaj subteno por ACID-transakcioj en la kunteksto de la tuta tutmonda datumbazo distribuita tra malsamaj aretnodoj. PolarDB ankaŭ subtenas distribuitan SQL-demandpretigon, faŭltoleremo kaj redundan datumstokadon por reakiri informojn post unu aŭ pluraj nodoj malsukcesas. Se vi bezonas pligrandigi vian stokadon, vi povas simple aldoni novajn nodojn al la areto. La kodo estas malfermita sub la permesilo Apache 2.0.

PolarDB konsistas el du komponentoj - etendaĵoj kaj aro de flikoj por PostgreSQL. Flikiloj vastigas la kapablojn de la PostgreSQL-kerno, kaj etendaĵoj inkluzivas komponantojn efektivigitajn aparte de PostgreSQL, kiel distribua transakcia administradmekanismo, tutmondaj servoj, distribuita SQL-procesoro, kromaj metadatenoj, iloj por administri la areton, deploji areton kaj simpligi. la migrado de ekzistantaj sistemoj al ĝi.

La diakiloj aldonas al la PostgreSQL-kerno distribuitan version de la mekanismo por kontroli paralelan aliron al datumoj uzante multiversion (MVCC, Multiversion samtempa kontrolo) por malsamaj izolaj niveloj. Plejparto de la funkcieco de PolarDB estas inkluzivita en etendaĵoj, kio reduktas dependecon de PostgreSQL kaj simpligas la ĝisdatigon kaj efektivigon de solvoj bazitaj sur PolarDB (ĝi simpligas la transiron al novaj versioj de PostgreSQL kaj konservante plenan kongruon kun PostgreSQL). Por administri la areton, la ilaro pgxc_ctl estas uzata, bazita sur simila utileco de PostgreSQL-XC kaj PostgreSQL-XL.

Estas tri bazaj komponentoj en areto: datumbazaj nodoj (DN), clustermanaĝero (CM) kaj transakcia administradservo (TM). Aldone, prokura ŝarĝbalancilo povas esti uzata. Ĉiu komponanto estas aparta procezo kaj povas ruliĝi sur malsama servilo. Datumbazaj nodoj servas SQL-demandojn de klientoj kaj samtempe funkcias kiel kunordigantoj de distribuita demanda ekzekuto kun la partopreno de aliaj datumbazaj nodoj. La clustermanaĝero monitoras la staton de ĉiu datumbaza nodo, konservas la aretkonfiguracion, kaj disponigas ilojn por administri, sekurkopion, ŝarĝbalancadon, ĝisdatigi, starti kaj haltigi nodojn. La transakcia administradservo respondecas pri konservado de totala integreco tra la tuta areto.

Alibaba malfermis la kodon por PolarDB, distribuita DBMS bazita sur PostgreSQL.

PolarDB estas bazita sur la Shared-nothing distribuita komputika arkitekturo, laŭ kiu datumoj estas distribuitaj kiam stokitaj sur malsamaj nodoj, sen uzi komunan stokadon por ĉiuj nodoj, kaj ĉiu nodo respondecas pri la parto de datumoj asociitaj kun ĝi kaj plenumas demandojn rilatajn. al la datumoj. Ĉiu tablo estas dividita en partojn (sharding) uzante hashing bazitan sur la primara ŝlosilo. Se la peto ampleksas datenojn situantajn sur malsamaj nodoj, distribuita transakcia ekzekutmekanismo kaj transakcia kunordiganto estas aktivigitaj por certigi atomecon, konsistencon, izolitecon kaj fidindecon (ACIDO).

Por certigi faŭltoleremo, ĉiu segmento estas reproduktita al almenaŭ tri nodoj. Por ŝpari rimedojn, la kompletaj datumoj inkluzivas nur du kopiojn, kaj unu estas limigita al stokado de la reskriba protokolo (WAL). Unu el la du nodoj kun plenaj kopioj estas elektita kiel la gvidanto kaj partoprenas en prilaborado de petoj. La dua nodo funkcias kiel rezerva por la koncerna datumsegmento, kaj la tria partoprenas en la elekto de la gvida nodo kaj povas esti uzata por restarigi informojn en la okazo de fiasko de du nodoj kun plenaj kopioj. Datenreproduktado inter aretnodoj estas organizita uzante la Paxos-algoritmon, kiu certigas konsekvencan difinon de interkonsento en reto kun eble nefidindaj nodoj.

Oni rimarkas, ke la plena funkcieco de la PolarDB DBMS estas planita esti malkaŝita dum tri eldonoj: En la unua versio, iloj por reproduktado, alta havebleco kaj administrado de aretoj estos publikigitaj. La dua eldono prezentos distribuitan transakcian ekzekutsistemon, kiu subtenas transnodan ACID kaj distribuitan SQL-ekzekuton. La tria eldono inkluzivos kromprogramon por PostgreSQL kaj ilojn por fleksebla distribuo de datumoj tra nodoj, inkluzive de adapta allokigo de segmentoj por atingi optimuman rendimenton kaj la kapablon vastigi la areton aldonante novajn nodojn.

fonto: opennet.ru

Aldoni komenton