Alibaba yatsegula code ya PolarDB, DBMS yogawidwa kutengera PostgreSQL.

Alibaba, imodzi mwamakampani akulu kwambiri a IT ku China, ili ndi PolarDB yotseguka, njira yogawa kasamalidwe ka database yotengera PostgreSQL. PolarDB imakulitsa luso la PostgreSQL ndi kusungidwa kwa data, kuwonetsetsa kukhulupirika kwa data ndikuthandizira zochitika za ACID pa database yapadziko lonse lapansi yogawidwa m'magulu angapo. PolarDB imathandiziranso kugawanika kwa mafunso a SQL, kulolerana ndi zolakwika, ndi kusungirako deta yowonjezereka kuti muwonjezere deta pambuyo pa kulephera kwa node imodzi kapena zingapo. Ngati kukulitsa kosungirako kukufunika, ingowonjezerani ma node atsopano pagululo. Khodiyo ndi yotseguka pansi pa layisensi ya Apache 2.0.

PolarDB ili ndi zigawo ziwiri: zowonjezera ndi seti ya zigamba za PostgreSQL. Zigamba zimakulitsa luso la PostgreSQL pachimake, pomwe zowonjezera zikuphatikiza zigawo zomwe zimakhazikitsidwa mosiyana ndi PostgreSQL, monga injini yoyendetsera ntchito yogawa, ntchito zapadziko lonse lapansi, chothandizira mafunso a SQL, metadata yowonjezera, zida zowongolera magulu, kutumiza magulu, ndikuthandizira kusamuka kwa machitidwe omwe alipo.

Zigamba zimawonjezera njira yogawidwa ya multiversion concurrency control (MVCC) ku kernel ya PostgreSQL pamagawo osiyanasiyana odzipatula. Zambiri mwazochita za PolarDB zasunthidwa ku zowonjezera, kuchepetsa kudalira PostgreSQL ndi kufewetsa kukweza ndi kutumiza mayankho a PolarDB-based (kupititsa patsogolo kusamukira kumitundu yatsopano ya PostgreSQL ndikukhalabe mogwirizana kwathunthu ndi PostgreSQL). Kasamalidwe ka Cluster amagwiritsa ntchito pgxc_ctl toolkit, kutengera zofunikira zofanana kuchokera ku PostgreSQL-XC ndi PostgreSQL-XL.

Gulu la ma cluster lili ndi zigawo zitatu zazikulu: ma database node (DN), woyang'anira ma cluster (CM), ndi ntchito yoyang'anira ma transaction (TM). Chowongolera katundu wa proxy chingagwiritsidwenso ntchito. Gawo lililonse ndi njira yosiyana ndipo limatha kuyendetsedwa pa seva yosiyana. SevaMa database node amafufuza mafunso a SQL ochokera kwa makasitomala ndipo nthawi yomweyo amagwira ntchito ngati ogwirizanitsa ntchito yogawa mafunso okhudzana ndi ma database node ena. Woyang'anira cluster amayang'anira momwe node iliyonse ya database imagwirira ntchito, amasunga kasinthidwe ka cluster, ndipo amapereka zida zowongolera, kusunga, kuyika zinthu, kusintha, kuyambitsa, ndi kuyimitsa ma node. Utumiki woyang'anira zochitika uli ndi udindo wosunga umphumphu wonse mu cluster yonse.

 Alibaba yatsegula code ya PolarDB, DBMS yogawidwa kutengera PostgreSQL.

PolarDB imachokera pamapangidwe apakompyuta omwe amagawidwa, omwe amagawidwa m'malo osiyanasiyana kuti asungidwe, osagwiritsa ntchito kusungirako komweko. Node iliyonse imayang'anira gawo lake la data ndikuyankha mafunso okhudzana ndi deta. Gome lililonse limagawidwa pogwiritsa ntchito makiyi oyambira. Ngati funso likuyang'ana deta yomwe ili pamagulu osiyanasiyana, njira yoyendetsera ntchito yogawidwa ndi wogwirizanitsa ntchito zimagwiritsidwa ntchito pofuna kutsimikizira kuti atomicity, consistency, isolation, and durability (ACID).

Kuti muwonetsetse kulekerera zolakwika, shard iliyonse imapangidwanso mpaka mfundo zitatu. Kuti musunge zothandizira, deta yonse ili m'makalata awiri okha, ndipo imodzi imangokhala kusunga chipika cholembera (WAL). Mmodzi mwa ma node awiri omwe ali ndi zolemba zonse amasankhidwa kukhala mtsogoleri ndipo amatenga nawo mbali pokonza mafunso. Node yachiwiri imakhala ngati kubwerera kwa data shard yomwe ikufunsidwa, ndipo yachitatu imatenga nawo mbali pa chisankho cha mtsogoleri ndipo ingagwiritsidwe ntchito kubwezeretsa deta pakalephereka kwa mfundo ziwiri zomwe zili ndi zolemba zonse. Kubwereza kwa data pakati pa ma cluster node kumakonzedwa pogwiritsa ntchito algorithm ya Paxos, yomwe imatsimikizira mgwirizano wokhazikika pamanetiweki omwe angakhale osadalirika.

Zimadziwika kuti ntchito yonse ya PolarDB DBMS ikukonzekera kutulutsidwa pazigawo zitatu: Mtundu woyamba uphatikiza kubwereza, kupezeka kwakukulu, ndi zida zowongolera magulu. Kutulutsidwa kwachiwiri kudzakhazikitsa njira yophatikizira yogawa yothandizira ACID m'malo onse ndikugawidwa kwa SQL. Kutulutsidwa kwachitatu kudzayambitsa pulogalamu yowonjezera ya PostgreSQL ndi zida zogawira ma data osinthika m'malo onse, kuphatikiza kuyika kwa shard kuti agwire bwino ntchito komanso kuthekera kokulitsa gululo powonjezera ma node atsopano.

Source: opennet.ru

Kuwonjezera ndemanga