Alibaba otevřela kód pro PolarDB, distribuovaný DBMS založený na PostgreSQL.

Alibaba, jedna z největších čínských IT společností, otevřela zdrojový kód distribuovaného DBMS PolarDB založeného na PostgreSQL. PolarDB rozšiřuje možnosti PostgreSQL o nástroje pro distribuované ukládání dat s integritou a podporou ACID transakcí v kontextu celé globální databáze distribuované napříč různými uzly clusteru. PolarDB také podporuje distribuované zpracování dotazů SQL, odolnost proti chybám a redundantní ukládání dat pro obnovu informací po selhání jednoho nebo více uzlů. Pokud potřebujete rozšířit úložiště, můžete do clusteru jednoduše přidat nové uzly. Kód je otevřen pod licencí Apache 2.0.

PolarDB se skládá ze dvou komponent – ​​rozšíření a sady patchů pro PostgreSQL. Záplaty rozšiřují možnosti jádra PostgreSQL a rozšíření zahrnují komponenty implementované odděleně od PostgreSQL, jako je mechanismus distribuované správy transakcí, globální služby, distribuovaný procesor dotazů SQL, další metadata, nástroje pro správu clusteru, nasazení clusteru a zjednodušení migraci stávajících systémů na něj.

Záplaty přidávají k jádru PostgreSQL distribuovanou verzi mechanismu pro řízení paralelního přístupu k datům pomocí multiverze (MVCC, Multiversion concurrency control) pro různé úrovně izolace. Většina funkcí PolarDB je zahrnuta v rozšířeních, což snižuje závislost na PostgreSQL a zjednodušuje aktualizaci a implementaci řešení založených na PolarDB (zjednodušuje přechod na nové verze PostgreSQL a zachování plné kompatibility s PostgreSQL). Ke správě clusteru se používá sada nástrojů pgxc_ctl, založená na podobném nástroji z PostgreSQL-XC a PostgreSQL-XL.

V clusteru jsou tři základní komponenty: databázové uzly (DN), správce clusteru (CM) a služba správy transakcí (TM). Kromě toho lze použít nástroj pro vyrovnávání zatížení proxy. Každá komponenta je samostatný proces a může být spuštěn na jiném serveru. Databázové uzly obsluhují SQL dotazy od klientů a zároveň fungují jako koordinátoři distribuovaného provádění dotazů za účasti dalších databázových uzlů. Správce klastrů monitoruje stav každého databázového uzlu, ukládá konfiguraci klastru a poskytuje nástroje pro správu, zálohování, vyvažování zátěže, aktualizaci, spouštění a zastavování uzlů. Služba správy transakcí je zodpovědná za udržování celkové integrity v celém clusteru.

Alibaba otevřela kód pro PolarDB, distribuovaný DBMS založený na PostgreSQL.

PolarDB je založen na distribuované výpočetní architektuře Shared-nothing, podle které jsou data distribuována, když jsou uložena na různých uzlech, bez použití společného úložiště pro všechny uzly a každý uzel je zodpovědný za část dat, která je s ním spojena, a provádí související dotazy. k datům. Každá tabulka je rozdělena na části (sharding) pomocí hashování na základě primárního klíče. Pokud požadavek zahrnuje data umístěná na různých uzlech, aktivuje se mechanismus provádění distribuovaných transakcí a koordinátor transakcí, aby byla zajištěna atomičnost, konzistence, izolace a spolehlivost (ACID).

Aby byla zajištěna odolnost proti chybám, je každý segment replikován alespoň na tři uzly. Kvůli úspoře prostředků obsahují kompletní data pouze dvě repliky a jedna je omezena na ukládání protokolu zpětného zápisu (WAL). Jeden ze dvou uzlů s úplnými replikami je zvolen jako vedoucí a podílí se na zpracování požadavků. Druhý uzel funguje jako náhradní pro daný datový segment a třetí se účastní výběru vedoucího uzlu a lze jej použít k obnovení informací v případě selhání dvou uzlů s úplnými replikami. Replikace dat mezi uzly clusteru je organizována pomocí algoritmu Paxos, který zajišťuje konzistentní definici konsensu v síti s potenciálně nespolehlivými uzly.

Je třeba poznamenat, že se plánuje odhalení plné funkčnosti PolarDB DBMS ve třech vydáních: V první verzi budou zveřejněny nástroje pro replikaci, vysokou dostupnost a správu clusterů. Druhá verze bude obsahovat distribuovaný systém provádění transakcí, který podporuje ACID mezi uzly a distribuované provádění SQL. Třetí verze bude obsahovat plugin pro PostgreSQL a nástroje pro flexibilní distribuci dat mezi uzly, včetně adaptivního umísťování segmentů pro dosažení optimálního výkonu a možnosti rozšířit cluster přidáním nových uzlů.

Zdroj: opennet.ru

Přidat komentář