Alibaba heeft de code geopend voor PolarDB, een gedistribueerd DBMS gebaseerd op PostgreSQL.

Alibaba, een van de grootste Chinese IT-bedrijven, heeft de broncode geopend van het gedistribueerde DBMS PolarDB, gebaseerd op PostgreSQL. PolarDB breidt de mogelijkheden van PostgreSQL uit met tools voor gedistribueerde gegevensopslag met integriteit en ondersteuning voor ACID-transacties in de context van de gehele mondiale database, verdeeld over verschillende clusterknooppunten. PolarDB ondersteunt ook gedistribueerde SQL-queryverwerking, fouttolerantie en redundante gegevensopslag om informatie te herstellen nadat een of meer knooppunten uitvallen. Als u uw opslag wilt uitbreiden, kunt u eenvoudig nieuwe knooppunten aan het cluster toevoegen. De code is geopend onder de Apache 2.0-licentie.

PolarDB bestaat uit twee componenten: extensies en een set patches voor PostgreSQL. Patches breiden de mogelijkheden van de PostgreSQL-kern uit, en uitbreidingen omvatten componenten die afzonderlijk van PostgreSQL zijn geïmplementeerd, zoals een gedistribueerd mechanisme voor transactiebeheer, globale services, een gedistribueerde SQL-queryprocessor, aanvullende metadata, tools voor het beheren van het cluster, het implementeren van een cluster en het vereenvoudigen de migratie van bestaande systemen ernaartoe.

De patches voegen aan de PostgreSQL-kern een gedistribueerde versie toe van het mechanisme voor het controleren van parallelle toegang tot gegevens met behulp van multiversie (MVCC, Multiversion concurrency control) voor verschillende isolatieniveaus. Het grootste deel van de functionaliteit van PolarDB is opgenomen in extensies, waardoor de afhankelijkheid van PostgreSQL wordt verminderd en het updaten en implementeren van oplossingen op basis van PolarDB wordt vereenvoudigd (het vereenvoudigt de overgang naar nieuwe versies van PostgreSQL en behoudt de volledige compatibiliteit met PostgreSQL). Om het cluster te beheren wordt de toolkit pgxc_ctl gebruikt, gebaseerd op een vergelijkbaar hulpprogramma van PostgreSQL-XC en PostgreSQL-XL.

Er zijn drie basiscomponenten in een cluster: databaseknooppunten (DN), clustermanager (CM) en transactiebeheerservice (TM). Bovendien kan een proxy-load balancer worden gebruikt. Elk onderdeel is een afzonderlijk proces en kan op een andere server worden uitgevoerd. Databaseknooppunten bedienen SQL-query's van clients en fungeren tegelijkertijd als coördinatoren van de gedistribueerde query-uitvoering met deelname van andere databaseknooppunten. De clustermanager bewaakt de status van elk databaseknooppunt, slaat de clusterconfiguratie op en biedt hulpmiddelen voor het beheren, back-uppen, taakverdeling, bijwerken, starten en stoppen van knooppunten. De transactiebeheerservice is verantwoordelijk voor het handhaven van de algehele integriteit in het hele cluster.

Alibaba heeft de code geopend voor PolarDB, een gedistribueerd DBMS gebaseerd op PostgreSQL.

PolarDB is gebaseerd op de Shared-nothing gedistribueerde computerarchitectuur, waarbij gegevens worden gedistribueerd wanneer ze op verschillende knooppunten worden opgeslagen, zonder gebruik te maken van een gemeenschappelijke opslag voor alle knooppunten, en elk knooppunt verantwoordelijk is voor het deel van de gegevens dat eraan is gekoppeld en gerelateerde zoekopdrachten uitvoert. naar de gegevens. Elke tabel wordt in delen opgedeeld (sharding) met behulp van hashing op basis van de primaire sleutel. Als het verzoek gegevens omvat die zich op verschillende knooppunten bevinden, worden een gedistribueerd transactie-uitvoeringsmechanisme en een transactiecoördinator geactiveerd om atomiciteit, consistentie, isolatie en betrouwbaarheid (ACID) te garanderen.

Om fouttolerantie te garanderen, wordt elk segment gerepliceerd naar ten minste drie knooppunten. Om bronnen te besparen, bevatten de volledige gegevens slechts twee replica's, en één is beperkt tot het opslaan van het terugschrijflogboek (WAL). Eén van de twee knooppunten met volledige replica's wordt gekozen als leider en neemt deel aan de verwerking van verzoeken. Het tweede knooppunt fungeert als reserve voor het betreffende datasegment, en het derde neemt deel aan de selectie van het leidende knooppunt en kan worden gebruikt om informatie te herstellen bij uitval van twee knooppunten met volledige replica's. Gegevensreplicatie tussen clusterknooppunten wordt georganiseerd met behulp van het Paxos-algoritme, dat zorgt voor een consistente definitie van consensus in een netwerk met potentieel onbetrouwbare knooppunten.

Opgemerkt wordt dat de volledige functionaliteit van het PolarDB DBMS naar verwachting in drie releases zal worden onthuld: In de eerste versie zullen tools voor replicatie, hoge beschikbaarheid en clusterbeheer worden gepubliceerd. De tweede release zal een gedistribueerd transactie-uitvoeringssysteem bevatten dat cross-node ACID en gedistribueerde SQL-uitvoering ondersteunt. De derde release bevat een plug-in voor PostgreSQL en tools voor flexibele gegevensdistributie over knooppunten, inclusief adaptieve plaatsing van segmenten om optimale prestaties te bereiken en de mogelijkheid om het cluster uit te breiden door nieuwe knooppunten toe te voegen.

Bron: opennet.ru

Voeg een reactie