Ua tatalaina e Alibaba le code mo PolarDB, o se DBMS tufatufaina e faʻavae i luga o PostgreSQL.

Alibaba, o se tasi o kamupani IT tele a Saina, ua tatalaina le faʻailoga autu o le tufatufaina DBMS PolarDB, faʻavae i luga o PostgreSQL. PolarDB faʻalauteleina le gafatia o le PostgreSQL faʻatasi ai ma meafaigaluega mo le tufatufaina atu o faʻamaumauga faʻamaumauga ma le faʻamaoni ma le lagolago mo fefaʻatauaiga a le ACID i le tulaga o le faʻamaumauga atoa o le lalolagi o loʻo tufatufa atu i nodes eseese. E lagolagoina foi e PolarDB le tufatufaina atu o fesili SQL, faapalepale sese, ma le tele o le teuina o faʻamaumauga e toe faʻafoʻi ai faʻamatalaga pe a maeʻa le tasi poʻo le sili atu. Afai e te manaʻomia le faʻalauteleina o lau teuina, e mafai ona e faʻaopoopoina ni nodes fou i le fuifui. O lo'o tatala le code i lalo ole laisene Apache 2.0.

PolarDB e aofia ai vaega e lua - faʻaopoopoga ma se seti o patches mo PostgreSQL. Patches faʻalauteleina le gafatia o le PostgreSQL autu, ma faʻaopoopoga e aofia ai vaega faʻatinoina ese mai le PostgreSQL, e pei o le tufatufaina atu o fefaʻatauaiga, auaunaga faʻavaomalo, faʻasalalauga faʻasalalauga SQL, metadata faʻaopoopo, meafaigaluega mo le faʻapipiʻiina o fuifui, faʻapipiʻi faʻapipiʻi, ma faʻafaigofie le femalagaiga. o faiga o iai i ai.

O patches e faʻaopoopo i le PostgreSQL core se faʻasalalauga tufatufaina o le masini mo le puleaina o avanoa tutusa i faʻamatalaga e faʻaaoga ai le multiversion (MVCC, Multiversion concurrency control) mo tulaga tuʻueseese eseese. O le tele o galuega a le PolarDB o loʻo aofia i faʻaopoopoga, lea e faʻaitiitia ai le faʻalagolago i le PostgreSQL ma faʻafaigofieina le faʻafouina ma le faʻatinoina o fofo e faʻavae i luga o PolarDB (e faʻafaigofie ai le suiga i lomiga fou o PostgreSQL ma faʻatumauina atoatoa le fesoʻotaʻiga ma PostgreSQL). Ina ia pulea le fuifui, o le pgxc_ctl toolkit e faʻaaogaina, faʻavae i luga o se faʻaoga tutusa mai PostgreSQL-XC ma PostgreSQL-XL.

E tolu vaega fa'avae i totonu o se fuifui: nodes database (DN), pule fa'apipi'i (CM) ma le auaunaga tau pulega (TM). E le gata i lea, e mafai ona faʻaaogaina se paleni o uta sui. O vaega taʻitasi o se faʻagasologa eseese ma e mafai ona faʻatautaia i luga o se isi server. O fa'amaumauga o fa'amaumauga e tautuaina fesili SQL mai tagata fa'atau ma i le taimi lava e tasi e fai ma fa'amaopoopo o fa'atinoga o fesili fa'asoa fa'atasi ma le auai o isi nodes fa'amaumauga. E mataituina e le pule o le fuifui le tulaga o node database taitasi, teuina le faatulagaga o le fuifui, ma saunia meafaigaluega mo le puleaina, lagolago, faapaleniina o uta, faʻafouina, amata, ma taofi nodes. Ole 'au'aunaga tau fefa'ataua'iga e nafa ma le fa'atumauina o le fa'amaoni atoa ile vaega atoa.

Ua tatalaina e Alibaba le code mo PolarDB, o se DBMS tufatufaina e faʻavae i luga o PostgreSQL.

PolarDB e faʻavae i luga o le Shared-nothing distributed computing architecture, e tusa ai ma faʻamaumauga e tufatufa atu pe a teuina i luga o nodes eseese, e aunoa ma le faʻaogaina o se teuina masani mo nodes uma, ma o node taʻitasi e nafa ma le vaega o faʻamatalaga e fesoʻotaʻi ma ia ma faia fesili e fesoʻotaʻi. i fa'amaumauga. O laulau ta'itasi e vaevaeina i ni vaega (sharding) e fa'aoga ai le fa'ailoga e fa'atatau i le ki autu. Afai o le talosaga e faʻasalalau faʻamatalaga o loʻo i luga o nodes eseese, o le tufatufaina atu o fefaʻatauaʻiga afi afi ma fefaʻatauaiga faʻatautaia e faʻagaoioia ina ia mautinoa le atomicity, tutusa, vavaeeseina, ma le faʻamaoni (ACID).

Ina ia fa'amautinoa le fa'apalepale o fa'aletonu, o vaega ta'itasi e toe fa'atusa i le itiiti ifo ma le tolu nodes. Ina ia fa'asaoina punaoa, o fa'amaumauga atoa e aofia ai na'o le lua fa'atusa, ma le tasi e fa'atapula'a i le teuina o le fa'amaumauga o tua (WAL). O se tasi o node e lua o loʻo iai faʻataʻitaʻiga atoa e filifilia e avea ma taʻitaʻi ma auai i le faʻatinoina o talosaga. O le node lona lua e galue o se faʻaagaga mo le vaega o faʻamatalaga o loʻo fesiligia, ma o le lona tolu e auai i le filifilia o le node taʻitaʻia ma e mafai ona faʻaaogaina e toe faʻafoʻi ai faʻamatalaga i le tulaga o le toilalo o lua nodes ma faʻataʻitaʻiga atoa. O fa'asologa o fa'amaumauga i le va o nodes o lo'o fa'atulagaina e fa'aaoga ai le Paxos algorithm, lea e fa'amautinoa ai se fa'auigaga faifaipea o le maliliega i totonu o se feso'ota'iga ma nodes e ono le fa'atuatuaina.

O loʻo maitauina o le atoatoaga o galuega a le PolarDB DBMS o loʻo fuafua e faʻaalia i luga o le tolu faʻasalalauga: I le lomiga muamua, meafaigaluega mo le toe faia, maualuga avanoa ma le faʻapipiʻiina o le a faʻasalalau. O le faʻasalalauga lona lua o le a faʻaalia ai se faiga faʻatautaia fefaʻatauaʻiga tufatufaina e lagolagoina ACID cross-node ma tufatufa faʻatinoga SQL. O le faʻasalalauga lona tolu o le a aofia ai se faʻapipiʻi mo PostgreSQL ma meafaigaluega mo faʻasalalauga faʻamatalaga fetuutuunai i luga o nodes, e aofia ai le faʻatulagaina o vaega e ausia ai le faʻatinoga sili ona lelei ma le mafai ona faʻalauteleina le fuifui e ala i le faʻaopoopoina o nodes fou.

puna: opennet.ru

Faaopoopo i ai se faamatalaga