Alibaba yatsegula code ya PolarDB, DBMS yogawidwa kutengera PostgreSQL.

Alibaba, imodzi mwamakampani akuluakulu aku China a IT, yatsegula magwero a DBMS PolarDB yogawidwa, kutengera PostgreSQL. PolarDB imakulitsa luso la PostgreSQL ndi zida zosungirako deta mokhulupirika ndi chithandizo cha zochitika za ACID malinga ndi deta yonse yapadziko lonse yogawidwa m'magulu osiyanasiyana. PolarDB imathandiziranso kugawa kwamafunso a SQL, kulolerana ndi zolakwika, komanso kusungitsa zambiri kuti zidziwitse zambiri pambuyo poti node imodzi kapena zingapo zalephera. Ngati mukufuna kukulitsa zosungira zanu, mutha kungowonjezera ma node atsopano pagulu. Khodiyo imatsegulidwa 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, ndipo zowonjezera zimaphatikizapo zigawo zomwe zimakhazikitsidwa mosiyana ndi PostgreSQL, monga njira yoyendetsera ntchito yogawa, ntchito zapadziko lonse lapansi, purosesa ya mafunso a SQL, metadata yowonjezera, zida zowongolera magulu, kutumiza magulu, ndikuchepetsa kusamuka. za machitidwe omwe alipo kwa izo.

Zigamba zimawonjezera ku PostgreSQL pachimake mtundu wogawidwa wamakina wowongolera mwayi wofikira ku data pogwiritsa ntchito ma multiversion (MVCC, Multiversion concurrency control) pamagawo osiyanasiyana odzipatula. Ntchito zambiri za PolarDB zikuphatikizidwa muzowonjezera, zomwe zimachepetsa kudalira PostgreSQL ndi kufewetsa kukonzanso ndi kukhazikitsa njira zothetsera mavuto pogwiritsa ntchito PolarDB (imapangitsa kuti kusintha kwa PostgreSQL kukhale kosavuta komanso kusunga kugwirizana kwathunthu ndi PostgreSQL). Kuwongolera masango, pgxc_ctl toolkit imagwiritsidwa ntchito, kutengera zofunikira zomwezo kuchokera ku PostgreSQL-XC ndi PostgreSQL-XL.

Pali zigawo zitatu zoyambira mgulu: ma database (DN), cluster manager (CM) ndi transaction management service (TM). Kuphatikiza apo, proxy load balancer ingagwiritsidwe ntchito. Chigawo chilichonse chimakhala chosiyana ndipo chikhoza kuyendetsedwa pa seva yosiyana. Ma node a database amagwiritsa ntchito mafunso a SQL kuchokera kwa makasitomala ndipo nthawi yomweyo amakhala ngati ogwirizanitsa mafunso omwe amagawidwa ndi ma node ena achinsinsi. Woyang'anira masango amayang'anira malo amtundu uliwonse wa database, amasunga kasinthidwe kamagulu, ndikupereka zida zowongolera, zosunga zobwezeretsera, kusanja katundu, kukonzanso, kuyambitsa, ndi kuyimitsa ma node. Ntchito yoyang'anira ntchitoyo ili ndi udindo wosunga umphumphu pagulu lonse.

Alibaba yatsegula code ya PolarDB, DBMS yogawidwa kutengera PostgreSQL.

PolarDB imachokera ku Shared-nothing anagawira computing zomangamanga, malinga ndi deta yomwe imagawidwa pamene yasungidwa pa mfundo zosiyana, popanda kugwiritsa ntchito kusungirako wamba kwa node zonse, ndipo node iliyonse ili ndi udindo wa gawo la deta yokhudzana ndi izo ndikuchita mafunso okhudzana nawo. ku data. Gome lililonse limagawidwa m'magawo (sharding) pogwiritsa ntchito hashing kutengera kiyi yoyamba. Ngati pempholi likuphatikiza deta yomwe ili pazigawo zosiyanasiyana, injini yogwiritsira ntchito yogawidwa ndi wogwirizanitsa ntchito imatsegulidwa kuti zitsimikizire kuti atomicity, kusasinthasintha, kudzipatula, ndi kudalirika (ACID).

Kuti muwonetsetse kulekerera zolakwika, gawo lililonse limabwerezedwanso mpaka mfundo zitatu. Kuti musunge zothandizira, deta yonse imaphatikizapo zofananira ziwiri zokha, ndipo imodzi imangokhala kusunga chipika cholembera (WAL). Mmodzi mwa ma node awiri okhala ndi zolemba zonse amasankhidwa kukhala mtsogoleri ndipo amatenga nawo mbali pokonza zopempha. Node yachiwiri imakhala ngati yosungira gawo la deta lomwe likufunsidwa, ndipo lachitatu limatenga nawo mbali pakusankha mfundo zotsogola ndipo zitha kugwiritsidwa ntchito kubwezeretsa chidziwitso pakalephera kwa mfundo ziwiri zokhala ndi zofananira zonse. Kubwereza kwa data pakati pa ma cluster node kumakonzedwa pogwiritsa ntchito algorithm ya Paxos, yomwe imatsimikizira kutanthauzira kofanana kwa mgwirizano mu netiweki yokhala ndi mfundo zosadalirika.

Ndizodziwika kuti ntchito yonse ya PolarDB DBMS ikukonzekera kuwululidwa pazigawo zitatu: Mu mtundu woyamba, zida zobwerezabwereza, kupezeka kwakukulu ndi kasamalidwe kamagulu zidzasindikizidwa. Kutulutsidwa kwachiwiri kudzakhala ndi njira yogawira yogawa yomwe imathandizira ACID yodutsa ndi kugawa kwa SQL. Kutulutsidwa kwachitatu kudzaphatikizanso pulogalamu yowonjezera ya PostgreSQL ndi zida zogawira ma data osinthika pama node, kuphatikiza kuyika kosinthika kwa magawo kuti akwaniritse magwiridwe antchito komanso kuthekera kokulitsa gululo powonjezera ma node atsopano.

Source: opennet.ru

Kuwonjezera ndemanga