Alibaba ir atvērusi PolarDB kodu, izplatītu DBVS, kuras pamatā ir PostgreSQL.

Alibaba, viens no lielākajiem Ķīnas IT uzņēmumiem, ir atvēris izplatītās DBMS PolarDB pirmkodu, pamatojoties uz PostgreSQL. PolarDB paplašina PostgreSQL iespējas ar rīkiem sadalītai datu glabāšanai ar integritāti un atbalstu ACID transakcijām visas globālās datu bāzes kontekstā, kas sadalīta pa dažādiem klasteru mezgliem. PolarDB atbalsta arī izplatītu SQL vaicājumu apstrādi, kļūdu toleranci un lieko datu glabāšanu, lai atjaunotu informāciju pēc viena vai vairāku mezglu kļūmes. Ja jums ir jāpaplašina krātuve, varat vienkārši pievienot klasterim jaunus mezglus. Kods ir atvērts saskaņā ar Apache 2.0 licenci.

PolarDB sastāv no diviem komponentiem - paplašinājumiem un ielāpu komplekta PostgreSQL. Ielāpi paplašina PostgreSQL kodola iespējas, un paplašinājumos ir iekļauti komponenti, kas ieviesti atsevišķi no PostgreSQL, piemēram, sadalīts darījumu pārvaldības mehānisms, globālie pakalpojumi, sadalīts SQL vaicājumu procesors, papildu metadati, rīki klastera pārvaldībai, klastera izvietošanai un vienkāršošanai. esošo sistēmu migrācija uz to.

Ielāpi pievieno PostgreSQL kodolam izplatītu versiju mehānismam, kas kontrolē paralēlu piekļuvi datiem, izmantojot vairāku versiju (MVCC, Multiversion concurrency control) dažādiem izolācijas līmeņiem. Lielākā daļa PolarDB funkcionalitātes ir iekļauta paplašinājumos, kas samazina atkarību no PostgreSQL un vienkāršo uz PolarDB balstītu risinājumu atjaunināšanu un ieviešanu (tas vienkāršo pāreju uz jaunām PostgreSQL versijām un saglabā pilnīgu saderību ar PostgreSQL). Lai pārvaldītu klasteru, tiek izmantots rīkkops pgxc_ctl, kura pamatā ir līdzīga utilīta no PostgreSQL-XC un PostgreSQL-XL.

Klasterī ir trīs pamata komponenti: datu bāzes mezgli (DN), klasteru pārvaldnieks (CM) un darījumu pārvaldības pakalpojums (TM). Turklāt var izmantot starpniekservera slodzes balansētāju. Katrs komponents ir atsevišķs process, un to var palaist citā serverī. Datu bāzes mezgli apkalpo SQL vaicājumus no klientiem un vienlaikus darbojas kā sadalīto vaicājumu izpildes koordinatori ar citu datu bāzes mezglu līdzdalību. Klasteru pārvaldnieks uzrauga katra datu bāzes mezgla stāvokli, saglabā klastera konfigurāciju un nodrošina rīkus mezglu pārvaldībai, dublēšanai, slodzes līdzsvarošanai, atjaunināšanai, palaišanai un apturēšanai. Darījumu pārvaldības pakalpojums ir atbildīgs par vispārējās integritātes uzturēšanu visā klasterī.

Alibaba ir atvērusi PolarDB kodu, izplatītu DBVS, kuras pamatā ir PostgreSQL.

PolarDB pamatā ir Shared-nothing sadalītās skaitļošanas arhitektūra, saskaņā ar kuru dati tiek izplatīti, kad tie tiek glabāti dažādos mezglos, neizmantojot kopēju krātuvi visiem mezgliem, un katrs mezgls ir atbildīgs par ar to saistīto datu daļu un veic ar to saistītos vaicājumus. uz datiem. Katra tabula tiek sadalīta daļās (sadalīšana), izmantojot jaukšanu, pamatojoties uz primāro atslēgu. Ja pieprasījums aptver datus, kas atrodas dažādos mezglos, tiek aktivizēts sadalīts darījumu izpildes mehānisms un darījumu koordinators, lai nodrošinātu atomitāti, konsekvenci, izolāciju un uzticamību (ACID).

Lai nodrošinātu kļūdu toleranci, katrs segments tiek replicēts vismaz trīs mezglos. Lai taupītu resursus, pilnīgajos datos ir iekļautas tikai divas kopijas, un viena aprobežojas ar ierakstīšanas žurnāla (WAL) glabāšanu. Viens no diviem mezgliem ar pilnām replikām tiek ievēlēts par vadītāju un piedalās pieprasījumu apstrādē. Otrais mezgls darbojas kā attiecīgā datu segmenta rezerves, bet trešais piedalās vadošā mezgla atlasē, un to var izmantot, lai atjaunotu informāciju divu mezglu ar pilnām kopijām atteices gadījumā. Datu replikācija starp klasteru mezgliem tiek organizēta, izmantojot Paxos algoritmu, kas nodrošina konsekventu vienprātības definīciju tīklā ar potenciāli neuzticamiem mezgliem.

Tiek atzīmēts, ka visu PolarDB DBVS funkcionalitāti plānots atklāt trīs laidienos: Pirmajā versijā tiks publicēti rīki replikācijai, augstai pieejamībai un klasteru pārvaldībai. Otrajā laidienā būs izplatīta transakciju izpildes sistēma, kas atbalsta starpmezglu ACID un izplatītu SQL izpildi. Trešajā laidienā būs iekļauts PostgreSQL spraudnis un rīki elastīgai datu izplatīšanai pa mezgliem, tostarp adaptīva segmentu izvietošana, lai panāktu optimālu veiktspēju un iespēja paplašināt kopu, pievienojot jaunus mezglus.

Avots: opennet.ru

Pievieno komentāru