Alibaba, oo ka mid ah shirkadaha IT-ga ugu waaweyn Shiinaha, waxay leedahay PolarDB oo furan, oo ah nidaam maamul oo xog ururin ah oo ku salaysan PostgreSQL. PolarDB waxay kordhisaa awoodaha PostgreSQL iyadoo adeegsanaysa kaydinta xogta la qaybiyay, hubinta hufnaanta xogta iyo taageeridda macaamil ganacsiyeedka ACID ee ku baahsan xog ururin caalami ah oo loo qaybiyay qaybo badan oo kooxeed. PolarDB waxay sidoo kale taageertaa habaynta su'aalaha SQL ee la qaybiyay, dulqaadka cilladaha, iyo kaydinta xogta dheeraadka ah si loo buuxiyo xogta ka dib marka ay dhacdo mid ama in ka badan oo unug. Haddii loo baahdo ballaarinta kaydinta, si fudud ugu dar qanjidhada cusub kooxda. Koodhka waxaa laga soo qaatay shatiga Apache 2.0.
PolarDB waxay ka kooban tahay laba qaybood: kordhin iyo qaybo balastar ah oo loogu talagalay PostgreSQL. Balastaradu waxay fidisaa awoodaha xudunta PostgreSQL, halka balastaradu ay ka kooban tahay qaybo si gaar ah looga hirgeliyay PostgreSQL, sida matoorka maaraynta macaamilka ee la qaybiyay, adeegyada caalamiga ah, maareeyaha weydiinta SQL ee la qaybiyay, metadata dheeraad ah, qalabka maaraynta kooxda, dejinta kooxda, iyo fududeynta socdaalka nidaamyada jira.
Baakadaha waxay ku daraan nooc qaybsan oo ah habka xakamaynta isku-dhafka badan (MVCC) ee ku jira kernel-ka PostgreSQL si loogu helo heerar kala duwan oo go'doomin ah. Inta badan shaqada PolarDB waxaa loo wareejiyay ballaarin, taasoo yareyneysa ku tiirsanaanta PostgreSQL iyo fududeynta casriyeynta iyo dejinta xalalka ku salaysan PolarDB (fududeynta u guurista noocyada cusub ee PostgreSQL iyo ilaalinta iswaafajinta buuxda ee PostgreSQL). Maareynta kooxdu waxay isticmaashaa qalabka pgxc_ctl, iyadoo lagu saleynayo adeeg la mid ah PostgreSQL-XC iyo PostgreSQL-XL.
Kooxdu waxay ka kooban tahay saddex qaybood oo aasaasi ah: qanjidhada xogta (DN), maareeyaha kooxda (CM), iyo adeegga maaraynta macaamilka (TM). Sidoo kale waxaa la isticmaali karaa dheelitirka culeyska wakiillada. Qayb kasta waa hab gaar ah waxaana lagu socodsiin karaa server kala duwan. serverQadadka xogta waxay farsameeyaan su'aalaha SQL ee ka yimaada macaamiisha waxayna isla mar ahaantaa u dhaqmaan sidii isku-duwayaal fulinta su'aalaha la qaybiyey ee ku lug leh qanjidhada kale ee xogta. Maareeyaha kooxdu wuxuu la socdaa xaaladda qanjidhada xogta kasta, wuxuu kaydiyaa habaynta kooxda, wuxuuna bixiyaa qalab lagu maareeyo, lagu kaydiyo, lagu dheellitiro culayska, la cusbooneysiiyo, lagu bilaabo, laguna joojiyo qanjidhada. Adeegga maaraynta macaamilku wuxuu mas'uul ka yahay ilaalinta sharafta guud ee kooxda oo dhan.

PolarDB waxay ku salaysan tahay qaab-dhismeedka xisaabinta ee aan la wadaagin oo aan waxba la wadaagin, halkaas oo xogta loogu qaybiyo qanjidhada kala duwan si loogu kaydiyo, iyada oo aan la isticmaalin kaydinta la wadaago. Qalooc kasta wuxuu mas'uul ka yahay qaybtiisa xogta ee loo qoondeeyay wuxuuna fuliyaa weydiimaha la xiriira xogta. Shax kasta waxaa lagu qaybiyaa iyadoo la adeegsanayo xaraashka furaha aasaasiga ah. Haddii weydiintu ay ku wareegto xogta ku taal qanjidhada kala duwan, habka fulinta macaamil ganacsi oo la qaybiyay iyo iskuduwaha macaamil ganacsi ayaa loo isticmaalaa si loo hubiyo atomikada, joogteynta, go'doominta, iyo waarta (ACID).
Si loo hubiyo dulqaadka cilladaha, jab kasta waxaa lagu celceliyaa ugu yaraan saddex qanjidh. Si loo ilaaliyo kheyraadka, xogta oo dhan waxaa ku jira laba nuqul oo keliya, midna waxaa ku xaddidan kaydinta diiwaanka qoraalka (WAL). Mid ka mid ah labada qanjidh ee leh nuqullo buuxa ayaa loo doortaa hoggaamiyaha wuxuuna ka qaybqaataa habaynta su'aalaha. Qashinka labaad wuxuu u adeegaa sidii kayd loogu talagalay jabsiga xogta ee su'aasha laga qabo, kan saddexaadna wuxuu ka qaybqaataa doorashada hoggaamiyaha waxaana loo isticmaali karaa in lagu soo celiyo xogta haddii ay dhacdo in laba qanjidh oo leh nuqullo buuxa. Ku-celinta xogta ee u dhaxaysa qanjidhada kooxeed waxaa lagu abaabulaa iyadoo la adeegsanayo algorithm-ka Paxos, kaas oo hubiya is-afgarad joogto ah oo ku jira shabakad leh qanjidhada aan la isku halleyn karin.
Waxaa la ogaaday in shaqada buuxda ee PolarDB DBMS la qorsheeyay in la sii daayo saddex sii deynood: Nooca koowaad waxaa ku jiri doona nuqul, helitaan sare, iyo qalabka maaraynta kooxda. Sii deynta labaad waxay hirgelin doontaa nidaam fulin macaamil oo qaybsan oo taageeraya ACID dhammaan qanjidhada iyo fulinta SQL ee la qaybiyey. Sii deynta saddexaad waxay soo bandhigi doontaa plugin PostgreSQL ah iyo qalab loogu talagalay qaybinta xogta dabacsan ee qanjidhada, oo ay ku jiraan meelaynta shard ee la qabsiga si loo helo waxqabadka ugu wanaagsan iyo awoodda lagu ballaarinayo kooxda iyadoo lagu darayo qanjidhada cusub.
Source: opennet.ru
