Alibaba otworzył kod dla PolarDB, rozproszonego systemu DBMS opartego na PostgreSQL.

Alibaba, jedna z największych chińskich firm informatycznych, otworzyła kod źródłowy rozproszonego systemu DBMS PolarDB, opartego na PostgreSQL. PolarDB rozszerza możliwości PostgreSQL o narzędzia do rozproszonego przechowywania danych z zachowaniem integralności i obsługą transakcji ACID w kontekście całej globalnej bazy danych rozproszonej w różnych węzłach klastra. PolarDB obsługuje również rozproszone przetwarzanie zapytań SQL, odporność na awarie i nadmiarowe przechowywanie danych w celu odzyskiwania informacji po awarii jednego lub większej liczby węzłów. Jeśli chcesz rozszerzyć pamięć masową, możesz po prostu dodać nowe węzły do ​​klastra. Kod jest otwarty na licencji Apache 2.0.

PolarDB składa się z dwóch komponentów - rozszerzeń i zestawu poprawek dla PostgreSQL. Poprawki rozszerzają możliwości rdzenia PostgreSQL, a rozszerzenia obejmują komponenty implementowane niezależnie od PostgreSQL, takie jak mechanizm zarządzania transakcjami rozproszonymi, usługi globalne, rozproszony procesor zapytań SQL, dodatkowe metadane, narzędzia do zarządzania klastrem, wdrażania klastra i upraszczanie migrację do niego istniejących systemów.

Łatki dodają do rdzenia PostgreSQL rozproszoną wersję mechanizmu kontroli równoległego dostępu do danych z wykorzystaniem multiwersji (MVCC, Multiversion concurrency control) dla różnych poziomów izolacji. Większość funkcjonalności PolarDB zawarta jest w rozszerzeniach, co zmniejsza zależność od PostgreSQL oraz ułatwia aktualizację i wdrażanie rozwiązań bazujących na PolarDB (ułatwia to przejście na nowe wersje PostgreSQL i utrzymanie pełnej kompatybilności z PostgreSQL). Do zarządzania klastrem wykorzystywany jest zestaw narzędzi pgxc_ctl, oparty na podobnym narzędziu z PostgreSQL-XC i PostgreSQL-XL.

Klaster składa się z trzech podstawowych komponentów: węzły bazy danych (DN), menedżer klastra (CM) i usługa zarządzania transakcjami (TM). Dodatkowo można zastosować moduł równoważenia obciążenia proxy. Każdy komponent stanowi odrębny proces i może być uruchamiany na innym serwerze. Węzły bazy danych obsługują zapytania SQL od klientów i jednocześnie pełnią rolę koordynatorów rozproszonego wykonywania zapytań przy udziale innych węzłów bazy danych. Menedżer klastra monitoruje stan każdego węzła bazy danych, przechowuje konfigurację klastra i udostępnia narzędzia do zarządzania węzłami, tworzenia kopii zapasowych, równoważenia obciążenia, aktualizowania, uruchamiania i zatrzymywania węzłów. Usługa zarządzania transakcjami odpowiada za utrzymanie ogólnej integralności w całym klastrze.

Alibaba otworzył kod dla PolarDB, rozproszonego systemu DBMS opartego na PostgreSQL.

PolarDB opiera się na architekturze obliczeń rozproszonych Shared-nothing, zgodnie z którą dane są dystrybuowane w przypadku przechowywania ich na różnych węzłach, bez korzystania ze wspólnego magazynu dla wszystkich węzłów, a każdy węzeł odpowiada za powiązaną z nim porcję danych i wykonuje zapytania związane do danych. Każda tabela jest dzielona na części (sharding) przy użyciu funkcji mieszania opartej na kluczu podstawowym. Jeśli żądanie obejmuje dane znajdujące się w różnych węzłach, aktywowany jest mechanizm realizacji transakcji rozproszonych i koordynator transakcji, aby zapewnić niepodzielność, spójność, izolację i niezawodność (ACID).

Aby zapewnić odporność na uszkodzenia, każdy segment jest replikowany do co najmniej trzech węzłów. Aby zaoszczędzić zasoby, pełne dane obejmują tylko dwie repliki, a jedna ogranicza się do przechowywania dziennika zapisu zwrotnego (WAL). Jeden z dwóch węzłów z pełnymi replikami zostaje wybrany na lidera i uczestniczy w przetwarzaniu żądań. Drugi węzeł pełni funkcję zapasową dla danego segmentu danych, zaś trzeci bierze udział w wyborze węzła wiodącego i może służyć do przywracania informacji w przypadku awarii dwóch węzłów z pełnymi replikami. Replikacja danych pomiędzy węzłami klastra zorganizowana jest przy użyciu algorytmu Paxos, który zapewnia spójną definicję konsensusu w sieci z potencjalnie zawodnymi węzłami.

Należy zauważyć, że pełna funkcjonalność systemu PolarDB DBMS ma zostać ujawniona w trzech wydaniach: W pierwszej wersji zostaną opublikowane narzędzia do replikacji, wysokiej dostępności i zarządzania klastrami. Druga wersja będzie zawierać rozproszony system wykonywania transakcji, który obsługuje międzywęzłowe wykonywanie ACID i rozproszone wykonywanie SQL. Trzecie wydanie będzie zawierało wtyczkę do PostgreSQL oraz narzędzia do elastycznej dystrybucji danych pomiędzy węzłami, w tym adaptacyjne rozmieszczanie segmentów w celu osiągnięcia optymalnej wydajności oraz możliwość rozbudowy klastra poprzez dodawanie nowych węzłów.

Źródło: opennet.ru

Dodaj komentarz