Alibaba te louvri kòd la pou PolarDB, yon DBMS distribye ki baze sou PostgreSQL.

Alibaba, youn nan pi gwo konpayi IT Chinwa yo, te louvri kòd sous distribiye DBMS PolarDB, ki baze sou PostgreSQL. PolarDB pwolonje kapasite PostgreSQL ak zouti pou distribye depo done ak entegrite ak sipò pou tranzaksyon ACID nan yon kontèks tout baz done mondyal distribye atravè diferan gwoup nœuds. PolarDB sipòte tou distribye pwosesis rekèt SQL, tolerans fay, ak depo done redondants pou rekipere enfòmasyon apre youn oswa plis nœuds echwe. Si ou bezwen elaji depo ou a, ou ka tou senpleman ajoute nouvo nœuds nan gwoup la. Kòd la louvri anba lisans Apache 2.0.

PolarDB konsiste de de eleman - ekstansyon ak yon seri plak pou PostgreSQL. Patch yo elaji kapasite nwayo PostgreSQL la, ak ekstansyon yo enkli eleman ki aplike separeman de PostgreSQL, tankou yon mekanis jesyon tranzaksyon distribiye, sèvis mondyal, yon processeur rechèch SQL distribiye, metadone adisyonèl, zouti pou jere gwoup la, deplwaye yon gwoup, ak senplifye. migrasyon sistèm ki egziste deja yo nan li.

Patch yo ajoute nan nwayo PostgreSQL la yon vèsyon distribye mekanis pou kontwole aksè paralèl nan done lè l sèvi avèk multivèsyon (MVCC, kontwòl konkou multivèsyon) pou diferan nivo izolasyon. Pifò nan fonksyonalite PolarDB enkli nan ekstansyon, ki diminye depandans sou PostgreSQL epi senplifye aktyalizasyon ak aplikasyon solisyon ki baze sou PolarDB (li senplifye tranzisyon an nan nouvo vèsyon PostgreSQL epi kenbe konpatibilite konplè ak PostgreSQL). Pou jere gwoup la, yo itilize bwat zouti pgxc_ctl, ki baze sou yon sèvis piblik ki sanble ak PostgreSQL-XC ak PostgreSQL-XL.

Gen twa eleman debaz nan yon gwoup: nœuds baz done (DN), manadjè gwoup (CM) ak sèvis jesyon tranzaksyon (TM). Anplis de sa, yo ka itilize yon balanse chaj prokurasyon. Chak eleman se yon pwosesis separe epi yo ka kouri sou yon sèvè diferan. Nœuds baz done sèvi demann SQL nan men kliyan yo epi an menm tan an aji kòm koòdonatè nan egzekisyon demann distribye ak patisipasyon nan lòt nœuds baz done. Manadjè gwoup la kontwole eta chak nœud baz done, estoke konfigirasyon gwoup la, epi li bay zouti pou jere, fè bak, balanse chaj, mete ajou, kòmanse ak kanpe nœuds. Sèvis jesyon tranzaksyon an responsab pou kenbe entegrite jeneral atravè tout gwoup la.

Alibaba te louvri kòd la pou PolarDB, yon DBMS distribye ki baze sou PostgreSQL.

PolarDB baze sou achitekti enfòmatik distribiye Shared-nothing, dapre sa done yo distribye lè yo estoke sou diferan nœuds, san yo pa itilize yon depo komen pou tout nœuds, epi chak nœuds responsab pou pòsyon done ki asosye ak li epi li fè demann ki gen rapò. nan done yo. Chak tab divize an pati (sharding) lè l sèvi avèk hachaj ki baze sou kle prensipal la. Si demann lan kouvri done ki sitiye sou diferan nœuds, yo aktive yon mekanis egzekisyon tranzaksyon distribiye ak yon koòdonatè tranzaksyon pou asire atomite, konsistans, izolasyon, ak fyab (ACID).

Pou asire tolerans fay, chak segman repwodui nan omwen twa nœuds. Pou ekonomize resous yo, done konplè yo gen ladan sèlman de kopi, epi youn se limite a estoke repòtaj ekri-back (WAL). Youn nan de nœuds ki gen kopi konplè yo eli kòm lidè epi patisipe nan pwosesis demann yo. Dezyèm ne aji kòm yon rezèv pou segman done nan kesyon an, ak twazyèm lan patisipe nan seleksyon an nan ne dirijan an epi yo ka itilize yo retabli enfòmasyon nan evènman an nan echèk nan de nœuds ak kopi konplè. Replikasyon done ant nœuds gwoup yo òganize lè l sèvi avèk algorithm Paxos, ki asire yon definisyon konsistan nan konsansis nan yon rezo ki gen nœuds potansyèlman enfidèl.

Li te note ke tout fonksyonalite PolarDB DBMS yo te planifye yo dwe revele sou twa degaje: Nan premye vèsyon an, zouti pou replikasyon, segondè disponiblite ak jesyon gwoup yo pral pibliye. Dezyèm lage a pral prezante yon sistèm ekzekisyon tranzaksyon distribye ki sipòte cross-node ACID ak egzekisyon SQL distribye. Twazyèm lage a pral gen ladan yon Plugin pou PostgreSQL ak zouti pou distribisyon done fleksib atravè nœuds, ki gen ladan plasman adaptasyon nan segman yo reyalize pèfòmans optimal ak kapasite nan elaji gwoup la lè yo ajoute nouvo nœuds.

Sous: opennet.ru

Add nouvo kòmantè