’Appendix A¶
BDR 4.0.0¶
BDR 4.0はBDRの新しいメジャーバージョンであり、このリリース番号で採用されているのはセマンティックバージョニングです(詳細についてはsemver.orgを参照してください)。以前の2つのメジャーバージョンは3.7と3.6です。
改善¶
EDB Postgres Advanced 14のBDRは、次の機能をサポートするようになりました 以前はEDB Postgres Extendedでのみ利用可能でした:
-最大1回コミット-ノード障害が発生した場合でも、アプリケーションが各トランザクションを1回のみコミットのを支援する一貫性機能-イーガーレプリケーション-トランザクションをコミットする前にクラスターのノード間で同期して、競合のフリーレプリケーションを提供-デコードワーカー-多数のノードでスケーラビリティを向上させるために、デコードをwalの送信者から分離したワーカーに分離-レプリケーションのキャッチアップ時間の見積もり-タイムスタンプベースのスナップショット-マルチプルのノードで一貫した読み取りを提供し、特定の時間に出現または出現するデータを取得-特定のコーナーケースでのUPDATE / DELETE競合解決の一貫性を改善するための行凍結の自動動的構成-評価チェック-エラーではなく競合として欠落しているパーティションのハンドリングのサポート-NOT VALIDコンストレインおよびALTER TABLEの高度なDDL処理
PostgreSQL 12-14のコミュニティバージョンのBDRは、次の機能をサポートするようになりました 以前はEDB Postgres Advancedまたは EDB Postgres Extended:
-競合のないレプリケートされたデータ型-非同期マルチマスター更新シナリオで数学的に証明された一貫性を提供する追加のデータ型-列レベルの競合解決-列ごとに最終更新を使用する機能により、異なるフィールドの更新を「マージ」できるどちらも失うことなく-変換トリガー-ストリームデータで実行されるトリガーで、それを変更したり、高度なプログラムフィルタリングを実行したりできます-競合トリガー-競合が検出されたときに呼び出され、カスタム競合を使用する方法を提供します解決手法-CREATE TABLE ASレプリケーション-並列適用-マルチプルのライターが着信変更を適用できるようにする
ラージトランザクションのストリーミングをサポートします。
これにより、 BDRはラージトランザクション(サイズが
logical_decoding_work_memをより大きい)をダウンストリームのファイルまたはライタプロセスのいずれかにストリーミングできます。これにより、トランザクションがコミットされる前にデコードされ、並列性が向上します。さらに、トランザクションはライタに直接ストリームされる場合、同時に適用することもできます。これにより、並列処理がさらに改善されます。
ラージトランザクションがファイルにストリーミングされると、それらはデコードされ、コミットされた前でもデコードされた変更がダウンストリームに送信されます。変更は一連のファイルに書き込まれ、トランザクションが最終的にコミットされるときに適用されます。トランザクションが中断すると、変更は破棄され、アップストリームとダウンストリームの両方でリソースが無駄になります。
サブトランザクションも自動的に処理されます。
この機能は、 PostgreSQL 14、 EDB Postgres Extended 13+およびEDB Postgres Advanced 14で使用できます。どの機能をPostgresのどのバージョンで使用できるかについての詳細は、付録Feature Compatibilityを参照してください。
BDRの以前のバージョンに存在していた標準間の違い エンタープライズエディションは削除されました。 BDR 4.0では、1つの拡張機能があります サポートされている各Postgresディストリビューションとバージョン、つまりPostgreSQL v12-14に対して、 EDB Postgres Extended v12-14およびEDB Postgres Advanced 12-14。
PostgreSQLのすべてのバージョンですべての機能が利用できるわけではありません。利用可能な機能は、bdr_configコマンドラインユーティリティまたはbdr.bdr_features()データベースファンクションのいずれかを使用する機能フラグによって報告されます。詳細については、付録Feature
Compatibilityを参照してください。
BDR 4.0拡張に対応するBDR 4.0拡張はありません。 BDRにはpglogicalの要件はなくなりました。
これは、 BDR拡張機能とスキーマのみが存在し、構成パラメーターの名前が
pglogical.からbdr.に変更されたことも意味します。
一部の構成オプションには、インストール後の改善のためにデフォルトが変更されています 経験:
-並列適用がデフォルトで有効になりました(2つのライターを使用)。特にストリーミングを有効にすると、パフォーマンスが向上します。 -
COPYとCREATE INDEX CONCURRENTLYは、デフォルトで利用可能なすべてのノードに並行して(ストリーミングがサポートされているPostgresバージョンで)ライタに直接ストリーミングされ、これらの操作後のレプリケーションラグスパイクを排除または少なくとも削減します。 -グローバルロックのタイムアウトが10分に延長されました-bdr.min_worker_backoff_delayはデフォルトで1秒になり、エラー時にサブスクリプションが1秒間に1回だけ接続をリトライするようになりました
競合検出中の誤検知の可能性を大幅に削減 オリジンベースの競合検出を使用するテーブルのノード結合
CAMOペアの構成をRaft(CAMO)に移動する
構成ミスのmake性を減らし、 BDRクラスター内のCAMOペアをグローバルに知らせるには、CAMO構成を個々のノードのpostgresql.confからRaftが管理するBDRシステムカタログに移動します。これにより、例、別のアクティブノードのCAMOパートナーとしてまだ構成されているノードが誤ってドロップされるのを防ぐことができます。
アップグレードプロセスの詳細については、Upgrades chapterを参照してください。
これにより、GUCの
bdr.camo_partner_ofおよびbdr.camo_origin_forが非推奨になり、関数bdr.get_configured_camo_origin_for()およびget_configured_camo_partner_ofがbdr.get_configured_camo_partnerに置き換えられます。
アップグレード¶
このリリースでは、次のバージョンのBDRからのアップグレード処理がサポートされています。
3.7.13.1
アップグレード処理前に、Upgrade Guideに記載されているプロセスと制限をmake読んで理解してください。