Alibaba tau qhib qhov chaws rau PolarDB, ib qho kev faib DBMS raws li PostgreSQL.

Alibaba, yog ib lub tuam txhab loj tshaj plaws hauv Suav teb, tau qhib qhov chaws ntawm DBMS PolarDB, raws li PostgreSQL. PolarDB txuas ntxiv lub peev xwm ntawm PostgreSQL nrog cov cuab yeej rau kev faib cov ntaub ntawv khaws cia nrog kev ncaj ncees thiab kev txhawb nqa rau ACID kev hloov pauv hauv cov ntsiab lus ntawm tag nrho cov ntaub ntawv thoob ntiaj teb uas tau muab faib thoob plaws pawg sib txawv. PolarDB kuj tseem txhawb nqa SQL query processing, ua txhaum cai, thiab rov ua cov ntaub ntawv khaws cia kom rov qab tau cov ntaub ntawv tom qab ib lossis ntau lub nodes ua tsis tiav. Yog tias koj xav tau nthuav koj qhov chaw cia, koj tuaj yeem ntxiv cov nodes tshiab rau pawg. Cov cai qhib raws li Apache 2.0 daim ntawv tso cai.

PolarDB muaj ob lub ntsiab lus - txuas ntxiv thiab ib txheej ntawm thaj ua rau thaj rau PostgreSQL. Patches nthuav dav lub peev xwm ntawm PostgreSQL core, thiab txuas ntxiv suav nrog cov khoom siv sib cais los ntawm PostgreSQL, xws li kev faib kev tswj hwm kev lag luam, cov kev pabcuam thoob ntiaj teb, kev faib SQL query processor, ntxiv cov metadata, cov cuab yeej rau kev tswj cov pawg, siv pawg, thiab ua kom yooj yim. kev tsiv teb tsaws ntawm cov tshuab uas twb muaj lawm rau nws.

Cov thaj ua rau thaj ntxiv rau PostgreSQL core ib qho kev faib tawm ntawm cov txheej txheem rau kev tswj hwm kev nkag mus rau cov ntaub ntawv siv ntau hom (MVCC, Multiversion concurrency control) rau qib sib txawv. Feem ntau ntawm kev ua haujlwm ntawm PolarDB suav nrog kev txuas ntxiv, uas txo qis kev vam khom ntawm PostgreSQL thiab ua kom yooj yim rau kev hloov kho thiab kev siv cov kev daws teeb meem raws li PolarDB (nws yooj yim hloov mus rau cov ntawv tshiab ntawm PostgreSQL thiab tswj kom muaj kev sib raug zoo nrog PostgreSQL). Txhawm rau tswj cov pawg, cov khoom siv pgxc_ctl yog siv, raws li cov txiaj ntsig zoo sib xws los ntawm PostgreSQL-XC thiab PostgreSQL-XL.

Muaj peb yam tseem ceeb hauv pawg: database nodes (DN), pawg tswj hwm (CM) thiab kev tswj hwm kev lag luam (TM). Tsis tas li ntawd, tuaj yeem siv lub proxy load balancer. Txhua qhov kev tivthaiv yog cov txheej txheem cais thiab tuaj yeem khiav ntawm lub server sib txawv. Database nodes pab SQL cov lus nug los ntawm cov neeg siv khoom thiab tib lub sijhawm ua tus tswj hwm ntawm kev faib cov lus nug ua tiav nrog kev koom tes ntawm lwm cov database nodes. Tus neeg saib xyuas pawg saib xyuas lub xeev ntawm txhua qhov chaw khaws ntaub ntawv, khaws cov kev teeb tsa pawg, thiab muab cov cuab yeej rau kev tswj hwm, thaub qab, thauj khoom sib npaug, hloov kho, pib, thiab nres cov nodes. Kev tswj hwm kev lag luam yog lub luag haujlwm tswj hwm kev ncaj ncees thoob plaws tag nrho pawg.

Alibaba tau qhib qhov chaws rau PolarDB, ib qho kev faib DBMS raws li PostgreSQL.

PolarDB yog ua raws li Shared-tsis muaj dab tsi faib kev suav architecture, raws li cov ntaub ntawv tau muab faib thaum khaws cia ntawm cov nodes sib txawv, tsis tas siv ib qho chaw cia rau tag nrho cov nodes, thiab txhua qhov node yog lub luag haujlwm rau feem ntawm cov ntaub ntawv cuam tshuam nrog nws thiab ua cov lus nug ntsig txog. rau cov ntaub ntawv. Txhua lub rooj yog muab faib ua ntu (sharding) siv hashing raws li tus yuam sij tseem ceeb. Yog tias qhov kev thov nthuav tawm cov ntaub ntawv nyob rau ntawm qhov sib txawv, ib qho kev faib tawm kev ua haujlwm thiab kev sib koom ua lag luam raug qhib kom paub meej atomicity, sib xws, kev sib cais, thiab kev ntseeg siab (ACID).

Txhawm rau kom ntseeg tau tias muaj kev zam txim txhaum cai, txhua ntu tau rov ua dua rau yam tsawg kawg peb ntawm. Txhawm rau txuag cov peev txheej, cov ntaub ntawv tiav suav nrog tsuas yog ob daim ntawv luam tawm, thiab ib qho tsuas yog khaws cia cov ntawv sau rov qab (WAL). Ib qho ntawm ob lub nodes nrog tag nrho cov replicas raug xaiv los ua tus thawj coj thiab koom nrog hauv kev thov. Qhov thib ob node ua raws li cov khoom seem rau cov ntaub ntawv ntu hauv nqe lus nug, thiab qhov thib peb koom nrog kev xaiv ntawm cov thawj coj thiab tuaj yeem siv los kho cov ntaub ntawv thaum tsis ua haujlwm ntawm ob lub nodes nrog tag nrho cov replicas. Cov ntaub ntawv rov ua dua ntawm pawg nodes tau teeb tsa siv Paxos algorithm, uas ua kom muaj kev sib raug zoo ntawm kev pom zoo hauv lub network nrog cov nodes uas tsis tuaj yeem ntseeg tau.

Nws tau raug sau tseg tias kev ua haujlwm tag nrho ntawm PolarDB DBMS tau npaj yuav nthuav tawm ntau tshaj peb qhov kev tshaj tawm: Hauv thawj version, cov cuab yeej rau kev rov ua dua, muaj ntau thiab kev tswj xyuas pawg yuav raug tshaj tawm. Qhov kev tso tawm thib ob yuav nthuav tawm cov kev faib ua lag luam uas txhawb nqa hla ntawm ACID thiab faib SQL ua tiav. Qhov thib peb tso tawm yuav suav nrog lub plugin rau PostgreSQL thiab cov cuab yeej rau cov ntaub ntawv hloov pauv hloov pauv thoob plaws ntawm cov nodes, suav nrog kev hloov pauv ntawm ntu kom ua tiav qhov kev ua tau zoo thiab muaj peev xwm nthuav dav pawg los ntawm kev ntxiv cov nodes tshiab.

Tau qhov twg los: opennet.ru

Ntxiv ib saib