Alibaba a deschis codul pentru PolarDB, un DBMS distribuit bazat pe PostgreSQL.

Alibaba, una dintre cele mai mari companii IT din China, a deschis codul sursă al DBMS-ului distribuit PolarDB, bazat pe PostgreSQL. PolarDB extinde capacitățile PostgreSQL cu instrumente pentru stocarea distribuită a datelor cu integritate și suport pentru tranzacțiile ACID în contextul întregii baze de date globale distribuite pe diferite noduri de cluster. PolarDB acceptă, de asemenea, procesarea distribuită de interogări SQL, toleranța la erori și stocarea redundantă a datelor pentru a recupera informații după ce unul sau mai multe noduri eșuează. Dacă aveți nevoie să vă extindeți spațiul de stocare, puteți pur și simplu să adăugați noi noduri la cluster. Codul este deschis sub licența Apache 2.0.

PolarDB constă din două componente - extensii și un set de patch-uri pentru PostgreSQL. Patch-urile extind capacitățile nucleului PostgreSQL, iar extensiile includ componente implementate separat de PostgreSQL, cum ar fi un mecanism de gestionare a tranzacțiilor distribuite, servicii globale, un procesor de interogări SQL distribuit, metadate suplimentare, instrumente pentru gestionarea clusterului, implementarea unui cluster și simplificarea migrarea sistemelor existente la acesta.

Patch-urile adaugă la nucleul PostgreSQL o versiune distribuită a mecanismului de control al accesului paralel la date folosind multiversion (MVCC, Multiversion control concurență) pentru diferite niveluri de izolare. Cea mai mare parte a funcționalității PolarDB este inclusă în extensii, ceea ce reduce dependența de PostgreSQL și simplifică actualizarea și implementarea soluțiilor bazate pe PolarDB (simplifica tranziția la versiuni noi de PostgreSQL și menține compatibilitatea deplină cu PostgreSQL). Pentru a gestiona clusterul, se folosește setul de instrumente pgxc_ctl, bazat pe un utilitar similar de la PostgreSQL-XC și PostgreSQL-XL.

Există trei componente de bază într-un cluster: noduri de bază de date (DN), manager de cluster (CM) și serviciu de gestionare a tranzacțiilor (TM). În plus, poate fi utilizat un echilibrator de încărcare proxy. Fiecare componentă este un proces separat și poate fi rulat pe un server diferit. Nodurile bazei de date servesc interogări SQL de la clienți și, în același timp, acționează ca coordonatori ai execuției de interogări distribuite cu participarea altor noduri de bază de date. Managerul de cluster monitorizează starea fiecărui nod al bazei de date, stochează configurația clusterului și oferă instrumente pentru gestionarea, copierea de rezervă, echilibrarea sarcinii, actualizarea, pornirea și oprirea nodurilor. Serviciul de gestionare a tranzacțiilor este responsabil pentru menținerea integrității generale în întregul cluster.

Alibaba a deschis codul pentru PolarDB, un DBMS distribuit bazat pe PostgreSQL.

PolarDB se bazează pe arhitectura de calcul distribuită Shared-nothing, conform căreia datele sunt distribuite atunci când sunt stocate pe diferite noduri, fără a utiliza o stocare comună pentru toate nodurile, iar fiecare nod este responsabil pentru porțiunea de date asociată acestuia și efectuează interogări legate la date. Fiecare tabel este împărțit în părți (sharding) folosind hashing bazat pe cheia primară. Dacă cererea se întinde pe date situate pe diferite noduri, un motor de execuție a tranzacțiilor distribuite și un coordonator de tranzacții sunt activate pentru a asigura atomicitatea, consistența, izolarea și fiabilitatea (ACID).

Pentru a asigura toleranța la erori, fiecare segment este replicat la cel puțin trei noduri. Pentru a economisi resurse, datele complete includ doar două replici, iar una este limitată la stocarea jurnalului de rescriere (WAL). Unul dintre cele două noduri cu replici complete este ales lider și participă la procesarea cererilor. Al doilea nod acționează ca o rezervă pentru segmentul de date în cauză, iar al treilea participă la selecția nodului principal și poate fi folosit pentru a restabili informațiile în cazul defecțiunii a două noduri cu replici complete. Replicarea datelor între nodurile clusterului este organizată folosind algoritmul Paxos, care asigură o definiție consecventă a consensului într-o rețea cu noduri potențial nesigure.

Se observă că funcționalitatea completă a SGBD-ului PolarDB este planificată să fie dezvăluită în trei versiuni: În prima versiune, vor fi publicate instrumente pentru replicare, disponibilitate ridicată și managementul clusterelor. A doua versiune va prezenta un sistem de execuție a tranzacțiilor distribuite care acceptă execuția ACID între noduri și SQL distribuit. A treia versiune va include un plugin pentru PostgreSQL și instrumente pentru distribuția flexibilă a datelor între noduri, inclusiv plasarea adaptivă a segmentelor pentru a obține performanțe optime și capacitatea de a extinde clusterul prin adăugarea de noi noduri.

Sursa: opennet.ru

Adauga un comentariu