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

中国最大級のIT企業であるアリババは、PostgreSQLベースの分散DBMS「PolarDB」のソースコードを公開しました。PolarDBは、PostgreSQLの機能を拡張し、クラスタ内の複数のノードに分散されたグローバルデータベース全体において、整合性のある分散データストレージとACIDトランザクションのサポートを提供します。また、PolarDBはSQLクエリの分散処理、フォールトトレランス、そして2.0つ以上のノードに障害が発生した場合でも情報を補充するための冗長データストレージもサポートしています。ストレージを拡張する必要がある場合は、クラスタに新しいノードを追加するだけで済みます。コードはApache XNUMXライセンスの下で公開されています。

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

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

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

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

PolarDBは、Shared-Nothing分散コンピューティングアーキテクチャに基づいています。このアーキテクチャでは、データは全ノードで共通のストレージを使用せず、複数のノードに分散して保存されます。各ノードは割り当てられたデータ部分を担当し、データに関連するクエリを実行します。各テーブルは主キーハッシュを使用してシャーディングされます。クエリが異なるノードにまたがるデータにまたがる場合、分散トランザクション実行メカニズムとトランザクションコーディネーターが連携し、原子性、一貫性、独立性、永続性(ACID)を確保します。

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

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

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

コメントを追加します