Giablihan sa Alibaba ang code para sa PolarDB, usa ka gipang-apod-apod nga DBMS base sa PostgreSQL.

Ang Alibaba, usa sa pinakadako nga kompanya sa IT sa China, nagbukas sa source code sa gipang-apod-apod nga DBMS PolarDB, base sa PostgreSQL. Gipalapad sa PolarDB ang mga kapabilidad sa PostgreSQL nga adunay mga himan alang sa giapod-apod nga pagtipig sa datos nga adunay integridad ug suporta alang sa mga transaksyon sa ACID sa konteksto sa tibuuk nga database sa kalibutan nga giapod-apod sa lainlaing mga cluster node. Gisuportahan usab sa PolarDB ang gipang-apod-apod nga pagproseso sa SQL query, pagtugot sa sayup, ug sobra nga pagtipig sa datos aron mabawi ang kasayuran pagkahuman napakyas ang usa o daghang mga node. Kung kinahanglan nimo nga palapdan ang imong pagtipig, mahimo nimong idugang ang mga bag-ong node sa cluster. Ang code bukas ubos sa Apache 2.0 nga lisensya.

Ang PolarDB naglangkob sa duha ka mga sangkap - mga extension ug usa ka hugpong sa mga patch alang sa PostgreSQL. Ang mga patch nagpalapad sa mga kapabilidad sa PostgreSQL core, ug ang mga extension naglakip sa mga component nga gi-implementar nga gilain gikan sa PostgreSQL, sama sa usa ka distributed transaction management mechanism, global services, usa ka distributed SQL query processor, dugang nga metadata, mga himan alang sa cluster management, cluster deployment, ug pagpasimple sa paglalin. sa kasamtangan nga mga sistema niini.

Ang mga patch nagdugang sa PostgreSQL core nga usa ka gipang-apod-apod nga bersyon sa mekanismo alang sa pagkontrol sa parallel nga pag-access sa datos gamit ang multiversion (MVCC, Multiversion concurrency control) para sa lain-laing lebel sa isolation. Kadaghanan sa mga gamit sa PolarDB gilakip sa mga extension, nga nagpamenos sa pagsalig sa PostgreSQL ug gipasimple ang pag-update ug pagpatuman sa mga solusyon nga gibase sa PolarDB (gipasimple niini ang pagbalhin sa mga bag-ong bersyon sa PostgreSQL ug gipadayon ang hingpit nga pagkaangay sa PostgreSQL). Sa pagdumala sa cluster, ang pgxc_ctl toolkit gigamit, base sa susamang gamit gikan sa PostgreSQL-XC ug PostgreSQL-XL.

Adunay tulo ka sukaranan nga sangkap sa usa ka cluster: database nodes (DN), cluster manager (CM) ug transaction management service (TM). Dugang pa, ang usa ka proxy load balancer mahimong magamit. Ang matag component usa ka bulag nga proseso ug mahimong ipadagan sa laing server. Ang mga node sa database nagsilbi sa mga pangutana sa SQL gikan sa mga kliyente ug sa samang higayon naglihok isip mga koordinetor sa gipang-apod-apod nga pagpatuman sa pangutana uban sa pag-apil sa ubang mga node sa database. Ang cluster manager nagmonitor sa estado sa matag database node, nagtipig sa cluster configuration, ug naghatag og mga himan alang sa pagdumala, pag-back up, pagbalanse sa load, pag-update, pagsugod, ug paghunong sa mga node. Ang serbisyo sa pagdumala sa transaksyon maoy responsable sa pagmintinar sa kinatibuk-ang integridad sa tibuok cluster.

Giablihan sa Alibaba ang code para sa PolarDB, usa ka gipang-apod-apod nga DBMS base sa PostgreSQL.

Ang PolarDB gibase sa Shared-nothing distributed computing architecture, sumala sa diin ang data ipang-apod-apod kung gitipigan sa lain-laing mga node, nga walay paggamit sa usa ka komon nga storage alang sa tanan nga mga node, ug ang matag node maoy responsable sa bahin sa datos nga nalangkit niini ug naghimo sa mga pangutana nga may kalabutan. sa datos. Ang matag lamesa gibahin sa mga bahin (sharding) gamit ang hashing base sa panguna nga yawe. Kung ang hangyo naglangkob sa datos nga nahimutang sa lain-laing mga node, usa ka distributed transaction execution mechanism ug usa ka transaction coordinator ang gi-activate aron maseguro ang atomicity, consistency, isolation, and reliability (ACID).

Aron masiguro ang pagtugot sa sayup, ang matag bahin gisundog sa labing menos tulo ka mga node. Aron makadaginot sa mga kahinguhaan, ang kompleto nga datos naglakip lamang sa duha ka replika, ug ang usa limitado sa pagtipig sa write-back log (WAL). Usa sa duha ka mga node nga adunay bug-os nga mga replika ang gipili ingon nga lider ug miapil sa pagproseso sa mga hangyo. Ang ikaduha nga node naglihok ingon nga usa ka ekstra alang sa bahin sa data sa pangutana, ug ang ikatulo moapil sa pagpili sa nag-unang node ug mahimong gamiton sa pagpasig-uli sa impormasyon sa panghitabo sa kapakyasan sa duha ka nodes uban sa bug-os nga replika. Ang pagkopya sa datos tali sa mga cluster node giorganisar gamit ang Paxos algorithm, nga nagsiguro sa usa ka makanunayon nga kahulugan sa consensus sa usa ka network nga adunay posibleng dili kasaligan nga mga node.

Namatikdan nga ang bug-os nga pagpaandar sa PolarDB DBMS giplano nga ipadayag sa tulo ka pagpagawas: Sa una nga bersyon, ang mga himan alang sa pagkopya, taas nga pagkaanaa ug pagdumala sa kumpol ipatik. Ang ikaduha nga pagpagawas magpakita sa usa ka distributed transaction execution system nga nagsuporta sa cross-node ACID ug distributed SQL execution. Ang ikatulo nga pagpagawas maglakip sa usa ka plugin alang sa PostgreSQL ug mga himan alang sa flexible nga pag-apod-apod sa datos sa mga node, lakip ang adaptive placement sa mga bahin aron makab-ot ang labing maayo nga performance ug ang abilidad sa pagpalapad sa cluster pinaagi sa pagdugang sa bag-ong mga node.

Source: opennet.ru

Idugang sa usa ka comment