Alibaba on avannut koodin PolarDB:lle, joka on PostgreSQL-pohjainen hajautettu DBMS.

Alibaba, yksi Kiinan suurimmista IT-yrityksistä, on avannut hajautetun DBMS PolarDB:n lähdekoodin, joka perustuu PostgreSQL:ään. PolarDB laajentaa PostgreSQL:n ominaisuuksia hajautetun tiedon tallennuksen työkaluilla eheydellä ja ACID-tapahtumien tuella koko maailmanlaajuisen tietokannan yhteydessä, joka on hajautettu eri klusterisolmuille. PolarDB tukee myös hajautettua SQL-kyselyn käsittelyä, vikasietoisuutta ja redundanttia tietojen tallennusta tietojen palauttamiseksi yhden tai useamman solmun epäonnistumisen jälkeen. Jos sinun on laajennettava tallennustilaasi, voit yksinkertaisesti lisätä uusia solmuja klusteriin. Koodi on avoinna Apache 2.0 -lisenssillä.

PolarDB koostuu kahdesta osasta - laajennuksista ja joukosta korjaustiedostoja PostgreSQL:lle. Korjaukset laajentavat PostgreSQL-ytimen ominaisuuksia, ja laajennukset sisältävät PostgreSQL:stä erillään toteutettuja komponentteja, kuten hajautetun tapahtumanhallintamekanismin, globaalit palvelut, hajautetun SQL-kyselyprosessorin, lisämetadata, työkalut klusterin hallintaan, klusterin käyttöönottoa ja yksinkertaistamista. olemassa olevien järjestelmien siirtyminen siihen.

Korjaukset lisäävät PostgreSQL-ytimeen hajautetun version mekanismista, jolla ohjataan rinnakkaista pääsyä tietoihin käyttämällä moniversiota (MVCC, Multiversion concurrency control) eri eristystasoilla. Suurin osa PolarDB:n toiminnoista sisältyy laajennuksiin, mikä vähentää riippuvuutta PostgreSQL:stä ja yksinkertaistaa PolarDB:hen perustuvien ratkaisujen päivittämistä ja käyttöönottoa (se yksinkertaistaa siirtymistä uusiin PostgreSQL-versioihin ja säilyttää täyden yhteensopivuuden PostgreSQL:n kanssa). Klusterin hallintaan käytetään pgxc_ctl-työkalusarjaa, joka perustuu PostgreSQL-XC:n ja PostgreSQL-XL:n samanlaiseen apuohjelmaan.

Klusterissa on kolme peruskomponenttia: tietokantasolmut (DN), klusterinhallinta (CM) ja tapahtumanhallintapalvelu (TM). Lisäksi voidaan käyttää välityspalvelinta. Jokainen komponentti on erillinen prosessi, ja sitä voidaan käyttää eri palvelimella. Tietokantasolmut palvelevat asiakkaiden SQL-kyselyitä ja toimivat samalla hajautetun kyselyn suorittamisen koordinaattoreina muiden tietokantasolmujen kanssa. Klusterinhallinta valvoo kunkin tietokantasolmun tilaa, tallentaa klusterin asetukset ja tarjoaa työkaluja solmujen hallintaan, varmuuskopiointiin, kuormituksen tasapainottamiseen, päivittämiseen, käynnistämiseen ja pysäyttämiseen. Tapahtumanhallintapalvelu vastaa yleisen eheyden ylläpitämisestä koko klusterissa.

Alibaba on avannut koodin PolarDB:lle, joka on PostgreSQL-pohjainen hajautettu DBMS.

PolarDB perustuu Shared-nothing hajautettuun laskentaarkkitehtuuriin, jonka mukaan tiedot jaetaan, kun ne tallennetaan eri solmuihin, ilman yhteistä tallennustilaa kaikille solmuille, ja jokainen solmu on vastuussa siihen liittyvästä datan osasta ja suorittaa siihen liittyviä kyselyitä. dataan. Jokainen taulukko jaetaan osiin (sharding) käyttämällä ensisijaiseen avaimeen perustuvaa hajautusta. Jos pyyntö kattaa eri solmuissa olevat tiedot, hajautettu tapahtuman suoritusmekanismi ja tapahtumakoordinaattori aktivoidaan atomiteetin, johdonmukaisuuden, eristyksen ja luotettavuuden (ACID) varmistamiseksi.

Vikasietoisuuden varmistamiseksi jokainen segmentti replikoidaan vähintään kolmeen solmuun. Resurssien säästämiseksi täydelliset tiedot sisältävät vain kaksi kopiota, ja yksi rajoittuu takaisinkirjoituslokin (WAL) tallentamiseen. Toinen solmuista, joilla on täydet replikat, valitaan johtajaksi ja osallistuu pyyntöjen käsittelyyn. Toinen solmu toimii kyseisen datasegmentin varaosana ja kolmas osallistuu johtavan solmun valintaan ja sitä voidaan käyttää tietojen palauttamiseen kahden solmun, joissa on täydet replikat, epäonnistuessa. Tietojen replikointi klusterin solmujen välillä on järjestetty käyttämällä Paxos-algoritmia, joka varmistaa johdonmukaisen konsensuksen määritelmän verkossa, jossa on mahdollisesti epäluotettavia solmuja.

On huomattava, että PolarDB DBMS:n koko toiminnallisuus on tarkoitus paljastaa kolmen julkaisun aikana: Ensimmäisessä versiossa julkaistaan ​​työkalut replikointiin, korkeaan saatavuuteen ja klusterinhallintaan. Toisessa julkaisussa on hajautettu tapahtuman suoritusjärjestelmä, joka tukee solmujen välistä ACID- ja hajautettua SQL-suoritusta. Kolmas julkaisu sisältää PostgreSQL-laajennuksen ja työkalut joustavaan tiedon jakamiseen solmujen välillä, mukaan lukien segmenttien mukautuva sijoittelu optimaalisen suorituskyvyn saavuttamiseksi ja mahdollisuus laajentaa klusteria lisäämällä uusia solmuja.

Lähde: opennet.ru

Lisää kommentti