Alibaba har åbnet koden til PolarDB, et distribueret DBMS baseret på PostgreSQL.

Alibaba, en af ​​de største kinesiske it-virksomheder, har åbnet kildekoden til det distribuerede DBMS PolarDB, baseret på PostgreSQL. PolarDB udvider mulighederne for PostgreSQL med værktøjer til distribueret datalagring med integritet og understøttelse af ACID-transaktioner i sammenhæng med hele den globale database fordelt på tværs af forskellige klynge noder. PolarDB understøtter også distribueret SQL-forespørgselsbehandling, fejltolerance og redundant datalagring for at gendanne information efter en eller flere noder fejler. Hvis du har brug for at udvide dit lager, kan du blot tilføje nye noder til klyngen. Koden er åben under Apache 2.0-licensen.

PolarDB består af to komponenter - udvidelser og et sæt patches til PostgreSQL. Patches udvider mulighederne for PostgreSQL-kernen, og udvidelser omfatter komponenter implementeret separat fra PostgreSQL, såsom en distribueret transaktionsstyringsmekanisme, globale tjenester, en distribueret SQL-forespørgselsprocessor, yderligere metadata, værktøjer til at administrere klyngen, implementere en klynge og forenkle migrering af eksisterende systemer til det.

Patches tilføjer til PostgreSQL-kernen en distribueret version af mekanismen til at kontrollere parallel adgang til data ved hjælp af multiversion (MVCC, Multiversion concurrency control) til forskellige isolationsniveauer. Det meste af funktionaliteten i PolarDB er inkluderet i udvidelser, hvilket reducerer afhængigheden af ​​PostgreSQL og forenkler opdatering og implementering af løsninger baseret på PolarDB (det forenkler overgangen til nye versioner af PostgreSQL og opretholder fuld kompatibilitet med PostgreSQL). For at administrere klyngen bruges pgxc_ctl-værktøjssættet, baseret på et lignende værktøj fra PostgreSQL-XC og PostgreSQL-XL.

Der er tre grundlæggende komponenter i en klynge: databasenoder (DN), cluster manager (CM) og transaktionsstyringstjeneste (TM). Derudover kan en proxy load balancer bruges. Hver komponent er en separat proces og kan køres på en anden server. Databaseknudepunkter betjener SQL-forespørgsler fra klienter og fungerer samtidig som koordinatorer af distribueret forespørgselsudførelse med deltagelse af andre databasenoder. Klyngeadministratoren overvåger tilstanden af ​​hver databaseknude, gemmer klyngekonfigurationen og giver værktøjer til styring, sikkerhedskopiering, belastningsbalancering, opdatering, start og stop af knudepunkter. Transaktionsstyringstjenesten er ansvarlig for at opretholde den overordnede integritet på tværs af hele klyngen.

Alibaba har åbnet koden til PolarDB, et distribueret DBMS baseret på PostgreSQL.

PolarDB er baseret på Shared-nothing distributed computing-arkitekturen, ifølge hvilken data distribueres, når de lagres på forskellige noder, uden at bruge et fælles lager for alle noder, og hver node er ansvarlig for den del af data, der er knyttet til den, og udfører forespørgsler relateret til den. til dataene. Hver tabel er sønderdelt i dele (sharding) ved hjælp af hashing baseret på den primære nøgle. Hvis anmodningen spænder over data placeret på forskellige noder, aktiveres en distribueret transaktionsudførelsesmekanisme og en transaktionskoordinator for at sikre atomicitet, konsistens, isolation og pålidelighed (ACID).

For at sikre fejltolerance replikeres hvert segment til mindst tre noder. For at spare ressourcer inkluderer de komplette data kun to replikaer, og den ene er begrænset til lagring af tilbageskrivningsloggen (WAL). En af de to noder med fulde replikaer vælges som leder og deltager i behandlingen af ​​anmodninger. Den anden node fungerer som reserve for det pågældende datasegment, og den tredje deltager i udvælgelsen af ​​den førende node og kan bruges til at gendanne information i tilfælde af fejl på to noder med fulde replikaer. Data replikering mellem klynge noder er organiseret ved hjælp af Paxos algoritmen, som sikrer en konsistent definition af konsensus i et netværk med potentielt upålidelige noder.

Det bemærkes, at den fulde funktionalitet af PolarDB DBMS er planlagt til at blive afsløret over tre udgivelser: I den første version vil værktøjer til replikering, høj tilgængelighed og klyngestyring blive offentliggjort. Den anden udgivelse vil indeholde et distribueret transaktionsudførelsessystem, der understøtter cross-node ACID og distribueret SQL-udførelse. Den tredje udgivelse vil omfatte et plugin til PostgreSQL og værktøjer til fleksibel datadistribution på tværs af noder, herunder adaptiv placering af segmenter for at opnå optimal ydeevne og muligheden for at udvide klyngen ved at tilføje nye noder.

Kilde: opennet.ru

Tilføj en kommentar