Alibaba propuštěn před pár dny se rozhodli vydat zdrojový kód váš systém správy distribuované databáze „PolarDB“ který je založen na PostgreSQL, je kód otevřený pod licencí Apache 2.0.
Pro ty, kteří PolarDB neznají, měli byste to vědět toto je relační databáze na základě cloudu vyvinutého společností Alibaba rozšiřuje možnosti PostgreSQL pro distribuované úložiště dat s integritou a podporou transakcí ACID v kontextu celé globální databáze, distribuované napříč různými uzly clusteru.
PolarDB taky podporuje distribuované zpracování dotazů SQL, poskytující odolnost proti chybám a redundantní datové úložiště k doplnění informací po selhání jednoho nebo více uzlů. Pokud potřebujete rozšířit úložiště, přidejte do uzlu nové uzly.
Polární DB sestává ze dvou částí: rozšíření a sada oprav pro PostgreSQL. Opravy rozšiřují možnosti jádra PostgreSQL a rozšíření zahrnují samostatně implementované komponenty PostgreSQL, jako je mechanismus distribuované správy transakcí, globální služby, distribuovaný procesor dotazů SQL, další metadata, nástroje pro správu klastru, implementace klastru a zjednodušit migraci stávajících systémů na něj.
Opravy přidávají distribuovanou verzi multiverzního mechanismu řízení souběžnosti (MVCC) do jádra PostgreSQL pro různé úrovně izolace. Většina funkcí PolarDB byla přesunuta do rozšíření, což snižuje závislost na PostgreSQL a zjednodušuje upgrade a nasazení řešení založených na PolarDB (zjednodušuje přechod na nové verze PostgreSQL a udržuje plnou kompatibilitu s PostgreSQL).
Existují tři základní komponenty v klastru: databázové uzly (DN), správce clusterů (CM) a služba správy transakcí (TM), navíc může být použit nástroj pro vyrovnávání zatížení serveru proxy. Každá z komponent je samostatný proces a může běžet na různých fyzických serverech. Uzly databáze obsluhují dotazy klienta SQL a současně fungují jako koordinátoři provádění distribuovaných dotazů za účasti dalších uzlů databáze.
Správce klastru sleduje stav každého uzlu databáze, ukládá konfiguraci clusteru a poskytuje nástroje pro správu, zálohování, vyrovnávání zatížení, aktualizaci, spouštění a zastavování uzlů. Služba správy transakcí je zodpovědná za udržování celkové integrity v klastru.
PolarDB je založen na distribuované výpočetní architektuře Shared-nothing, podle které jsou data distribuována během ukládání do různých uzlů, 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í data dotazu.
Každá tabulka je fragmentována pomocí hash primárního klíče. Pokud požadavek pokrývá data umístěná na různých uzlech, jsou propojeny stroj pro provádění distribuovaných transakcí a koordinátor transakcí, aby byla zajištěna atomicita, konzistence, izolace a spolehlivost (ACID).
Aby byla zajištěna odolnost proti chybám, je každý segment replikován alespoň na třech uzlech. Chcete-li ušetřit prostředky, úplná data obsahují pouze dvě repliky a jedna je omezena na ukládání protokolu pro zápis (WAL). Jeden ze dvou uzlů plné repliky je vybrán jako vedoucí a podílí se na zpracování požadavku, zatímco druhý uzel funguje jako náhradní pro uvažovaný datový segment a třetí se podílí na výběru primárního uzlu a lze jej použít k obnovení informace 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í stanovení konsensu v síti s potenciálně nedůvěryhodnými uzly. Je třeba poznamenat, že plná funkčnost PolarDB DBMS se plánuje vydat ve třech verzích.
Nakonec, pokud máte zájem o tom vědět více, můžete se poradit podrobnosti v následujícím odkazu.