pglogical 2#
pglogical 2拡張機能は、パブリッシュ/サブスクライブモデルを使用して、PostgreSQLの論理ストリーミングレプリケーションを提供します。これは、 EDB Postgres Distributed の一部として開発されたテクノロジーに基づいています。
私たちは次の用語を使用してノード間のデータストリームを説明し、以前のSlonyテクノロジーから意図的に再利用しました。
ノード - PostgreSQLデータベースインスタンス
プロバイダーとサブスクライバー - ノードが実行するロール
レプリケーションセット - テーブルのコレクション
pglogicalは最新のインコア機能を利用しているため、次のバージョン制限があります。
プロバイダーとサブスクライバーノードはPostgreSQL 9.4+を実行する必要があります
レプリケーションオリジンフィルタリングと競合検出には、PostgreSQL 9.5以降が必要です
さらに、サブスクライバーはPostgres-XL 9.5+にすることができます
サポートされているユースケースは次のとおりです。
メジャーバージョン間のアップグレード上記の制限を考慮
データベースの完全なレプリケーション
レプリケーションセットを使用したテーブルのセットの選択的レプリケーション
パブリッシャーまたはサブスクライバー側のテーブル行の選択的レプリケーション row_filter
パブリッシャー側でのテーブル列の選択的レプリケーション
複数の上流サーバーからのデータ収集/マージ
アーキテクチャの詳細
pglogicalは、物理的ストリーミングレプリケーションのようなサーバー全体レベルではなく、データベースごとのレベルで動作します
1つのプロバイダーが、追加のディスク書き込みオーバーヘッドを発生させることなく、マルチプルのサブスクライバーをフィードできます
1つのサブスクライバーは、複数のオリジンからの変更をマージし、自動で構成可能な競合解決マルチマスターに必要なすべてではなく一部の側面を使用して変更間の競合を検出できます。
カスケードレプリケーションは、変更セット転送の形式で実装されます。