Alibaba は、PostgreSQL に基づく分散 DBMS である PolarDB のコードを公開しました。

中国最大手のIT企業の2.0つであるアリババは、PostgreSQLをベースにした分散DBMS PolarDBのソースコードを公開した。 PolarDB は、整合性を備えた分散データ ストレージのツールと、さまざまなクラスター ノードに分散されたグローバル データベース全体のコンテキストでの ACID トランザクションのサポートにより、PostgreSQL の機能を拡張します。 PolarDB は、分散 SQL クエリ処理、フォールト トレランス、XNUMX つ以上のノードに障害が発生した後に情報を復元するための冗長データ ストレージもサポートしています。 ストレージを拡張する必要がある場合は、クラスターに新しいノードを追加するだけで済みます。 コードは Apache XNUMX ライセンスに基づいて公開されています。

PolarDB は、PostgreSQL の拡張機能とパッチのセットという XNUMX つのコンポーネントで構成されています。 パッチによって PostgreSQL コアの機能が拡張され、拡張機能には、分散トランザクション管理メカニズム、グローバル サービス、分散 SQL クエリ プロセッサ、追加のメタデータ、クラスタの管理、クラスタの展開、およびクラスタの簡素化のためのツールなど、PostgreSQL とは別に実装されたコンポーネントが含まれます。既存のシステムをそれに移行します。

このパッチは、さまざまな分離レベルのマルチバージョン (MVCC、マルチバージョン同時実行制御) を使用してデータへの並列アクセスを制御するメカニズムの分散バージョンを PostgreSQL コアに追加します。 PolarDB の機能のほとんどは拡張機能に含まれているため、PostgreSQL への依存が軽減され、PolarDB に基づくソリューションの更新と実装が簡素化されます (PostgreSQL の新しいバージョンへの移行と PostgreSQL との完全な互換性の維持が簡素化されます)。 クラスターを管理するには、PostgreSQL-XC および PostgreSQL-XL の同様のユーティリティに基づいた pgxc_ctl ツールキットが使用されます。

クラスターには、データベース ノード (DN)、クラスター マネージャー (CM)、およびトランザクション管理サービス (TM) の XNUMX つの基本コンポーネントがあります。 さらに、プロキシ ロード バランサを使用することもできます。 各コンポーネントは個別のプロセスであり、異なるサーバー上で実行できます。 データベース ノードは、クライアントからの SQL クエリを処理すると同時に、他のデータベース ノードの参加による分散クエリ実行のコーディネーターとして機能します。 クラスター マネージャーは、各データベース ノードの状態を監視し、クラスター構成を保存し、ノードの管理、バックアップ、負荷分散、更新、起動、および停止のためのツールを提供します。 トランザクション管理サービスは、クラスター全体にわたる全体的な整合性を維持する責任を負います。

Alibaba は、PostgreSQL に基づく分散 DBMS である PolarDB のコードを公開しました。

PolarDB は、シェアードナッシング分散コンピューティング アーキテクチャに基づいており、これに従って、すべてのノードに共通のストレージを使用せずに、データが異なるノードに保存されるときに分散され、各ノードがそれに関連付けられたデータの部分を担当し、関連するクエリを実行します。データに。 各テーブルは、主キーに基づくハッシュを使用して複数の部分にシャード化されます (シャーディング)。 リクエストが異なるノードにあるデータにまたがる場合、分散トランザクション実行メカニズムとトランザクション コーディネーターがアクティブ化され、アトミック性、一貫性、分離性、および信頼性 (ACID) が保証されます。

耐障害性を確保するために、各セグメントは少なくとも XNUMX つのノードに複製されます。 リソースを節約するために、完全なデータには XNUMX つのレプリカのみが含まれ、XNUMX つはライトバック ログ (WAL) の保存に限定されます。 完全なレプリカを持つ XNUMX つのノードのうち XNUMX つがリーダーとして選出され、リクエストの処理に参加します。 XNUMX 番目のノードは問題のデータ セグメントのスペアとして機能し、XNUMX 番目のノードは先頭ノードの選択に参加し、完全なレプリカを持つ XNUMX つのノードに障害が発生した場合に情報を復元するために使用できます。 クラスター ノード間のデータ レプリケーションは、Paxos アルゴリズムを使用して組織されます。これにより、信頼性が低い可能性のあるノードを含むネットワーク内で一貫したコンセンサスの定義が保証されます。

PolarDB DBMS の全機能は XNUMX つのリリースにわたって公開される予定であることに注意してください。最初のバージョンでは、レプリケーション、高可用性、およびクラスター管理のためのツールが公開されます。 XNUMX 番目のリリースでは、クロスノード ACID と分散 SQL 実行をサポートする分散トランザクション実行システムが特徴となります。 XNUMX 番目のリリースには、PostgreSQL 用のプラグインと、最適なパフォーマンスを実現するためのセグメントの適応配置や、新しいノードを追加してクラスターを拡張する機能など、ノード間で柔軟なデータ分散を実現するツールが含まれます。

出所: オープンネット.ru

コメントを追加します