BDR 4.1.0

これはBDR 4のマイナーリリースであり、新機能と、以前のバージョンで特定された問題の修正が含まれています。

Type

Category

Description

Feature

Reliability and operability

BDRノードでのPostgresのインプレースメジャーアップグレードをサポート<p>このBDRリリースには、新しいコマンドラインユーティリティ`bdr_pg_upgrade`が含まれています。`pg_upgrade`を使用して、 BDRノードでPostgresのメジャーバージョンアップグレードを実行します。</p><p> EDB Postgres分散クラスターでPostgresのメジャーバージョンアップグレードを行うために必要な時間とネットワーク帯域幅を削減します。</p>

Feature

Performance and scalability

レプリケーションラグ制御 <p>トランザクションのコミットが調整されるまでのレプリケーションラグしきい値の構成を追加します。これにより、同期レプリケーションに伴うすべてのトランザクションにレイテンシーの影響を与えることなく、RPOを制限できます。</p>

Feature

UX / Initial experience

デフォルトでの分散シーケンス<p> bdr.default_sequence_kind`のデフォルト値が'distributed'`に変更されました。これは、 `bigserial`にSnowFlakeIdを使用し、 `serial`列タイプにGallocシーケンスを使用します。</p>

Feature

UX

簡素化された同期レプリケーション構成<p> BDRグループとSQLベースの管理(構成ファイルではない)に重点を置いた、同期レプリケーションオプションを指定するための新しい構文。 </p><p>将来のバージョンでは、これは現在のEager ReplicationとCAMO構成オプションにも置き換わります。</p>

Feature

High availability and disaster recovery

グループコミット<p>新しい構成構文で構成できる初期の種類の同期コミット。</p>

Feature

High availability and disaster recovery

ローカルモードへのCAMOの切り替えにRaftリクエストが必要になることをCAMOします。に接続して、ローカルモードに切り替えます。</p>

Feature

High availability and disaster recovery

既にデタッチされたパーティションの`ALTER TABLE ... DETACH PARTITION CONCURRENTLY`でレプリケーションを続行できるようにする(RT78362)<p>同じインデックスが既に存在する場合にBDR 4が`CREATE INDEX CONCURRENTLY`を処理する方法と同様に、 `ALTER TABLE ... DETACH PARTITION CONCURRENTLY`が既にデタッチされたパーティションのレシーバーである場合にレプリケーションを続行できるようになりました。</p >

Feature

User Experience

DDLフィルターに追加のフィルタリングオプションを追加します。<p> DDLフィルターを使用すると、さまざまなDDLステートメントをさまざまなレプリケーションセットに複製できます。レプリケーションセットのテーブルメンバーシップにより、さまざまなテーブルのDMLをさまざまなレプリケーションセットを介してレプリケートできるのと同様に。</p><p>このリリースでは、 DDLフィルタを使いやすくする新しいコントロールが追加されています。<br /> - query_match -定義されたクエリがこの正規表現と一致する必要がある場合<br /> - Exclusive - trueの場合、他の一致したフィルタは考慮されません(つまり、排他フィルタのみが適用されます)。複数の排他フィルタが一致すると、エラーがスローされます</p>

Feature

User Experience

`bdr.lock_table_locking`構成変数を追加します。<p>有効にすると、グローバルDMLロックを取得するように`LOCK TABLE`コマンドの動作が変更されます</p>

Feature

Performance and scalability

LCRセグメントファイル<p>のバッファリングされた書き込みを実装します。これにより、I / Oが削減され、Decoding WorkerのCPU使用率が向上します。</p>

Feature

User Experience

競合検出のために部分的な一意のインデックス検索のサポートを追加しました(RT78368)。<p>ただし、式のインデックスは競合検出でまだサポートされていません。</p>

Feature

User Experience

`bdr.stat_subscription`に追加の統計を追加します。<br /> - nstream_insert =>ストリーミングされたトランザクションのINSERTの数<br /> - nstream_update =>ストリーミングされたトランザクションのUPDATEの数<br /> - nstream_delete =>ストリーミングされたトランザクションの数transaction<br /> - nstream_truncate =>ストリーミングされたトランザクションのTRUNCATEの数<br /> - npre_commit_confirmations => CAMOを使用する場合のプリコミット確認の数<br /> - npre_commit =>プリコミットの数<br /> - ncommit_prepared =>2PCでの準備されたコミットの数<br /> - nabort_prepared =>2PCでの準備されたトランザクションのアボート数

Feature

User Experience

execute_locallyオプションをbdr.replicate_ddl_commandに追加しました(RT73533)。<p>これにより、ローカルで実行せずに他のグループにレプリケーションするためのddlコマンドをオプションでキューイングできます。</p>

Feature

User Experience

`bdr.alter_subscription_disable()`に`fast`引数を追加(RT79798)<p>引数は`immediate`の動作にのみ影響します。 `true`(デフォルト)に設定すると、現在の作業を終了させずにワーカーを停止します。</p>

Feature

User Experience

すべてのタイプのワーカーの`bdr.worker_error`レコードを永続的に保持します。<p> BDRは、レシーバーとライタのエラーが以前にエラーになったLSNを複製できたときに使用されました。ただし、これは他のワーカーの動作と一貫性がありませんでした。他のワーカーのエラーは永続的なものであり、過去の問題のトラブルシューティングも困難になりました。したがって、すべてのワーカータイプの最後のエラーレコードを永続的に保持します。</p>

Feature

User Experience

voidを返すように`bdr.{add,remove}_camo_pair`関数を簡素化します。

Feature

Initial Experience

グローバルロックを取得する前に接続/ラグチェックを追加します。<p>これにより、アプリケーションまたはユーザーは、明らかな接続の問題がある場合にロックタイムアウトを取得する必要がありません。</p><p>DEBUG、LOGに設定できます。 、WARNING(デフォルト)またはERROR。</p>

Feature

Initial Experience

デフォルトでは、競合のみを競合ログテーブルに記録します。デフォルトではサーバーログファイルに記録されなくなりましたが、これはオーバーライドできます。

Feature

User Experience

ノード参加中のリモートエラーのレポートを改善します。

Feature

Reliability and operability

自動パーティションワーカーの最大昼寝時間を設定可能にします。

Feature

User Experience

autopartitionで指定された上限までパーティションを要求する機能を追加します。

Feature

Initial Experience

サブスクライブ専用ノードでレプリケートDDLを実行しないでください。複製する場所がないため、複製しようとしても失敗します。これは、ロジカルスタンバイの動作と同じです。

Feature

User Experience

`bdr.accept_connections`構成変数を追加します。 `false`の場合、 BDR出力プラグインを使用したレプリケーションスロットへのwalsender接続が失敗します。これは、主にバックアップからの単一ノードの復元中に役立ちます。

Bug fix

Reliability and operability

非CAMOパートナーBDRノードで`lock_timeout`を構成したままにします<p> CAMOパートナーは、オリジンノードからトランザクションを適用するときに低い`lock_timeout`を使用します。これは、 CAMOパートナーだけでなく、すべてのBDRノードに対して誤って行われたため、通常のBDRノードのpglogicalライタプロセスで誤った`lock_timeout`エラーが発生した可能性があります。</p>

Bug fix

User Experience

CAMO / Eager確認待機の適切な待機イベントを表示する(RT75900)<p>デフォルトの「不明な待機イベント」ではなく、`bdr.stat_activity`の正しい「BDR準備フェーズ」/「BDRコミットフェーズ」を表示します。</p>

Bug fix

User Experience

bdr.run_on_nodesのログを削減する(RT80973)<p> `bdr.ddl_replication`をオフに設定すると、関数の「run_on_nodes」バリアントが使用されます。これにより、モニタリング機能のログの洪水がなくなります。</p>

Bug fix

Reliability and operability

バイナリネットワークエンコーディングをサポートしていない複合型の配列と組み込み型の配列のレプリケーションを修正

Bug fix

Reliability and operability

ブートストラップ中に作成されたデータ型のレプリケーションを修正

Bug fix

Performance and scalability

WALデコーダーによって処理された実行中のトランザクションレコードの終了LSNを確認して、WALデコーダースロットが最新の状態を維持し、WAL送信者がタイムリーに候補を取得します。

Bug fix

Reliability and operability

分割ノードで自動パーティションタスクが完了するのを待たない

Bug fix

Reliability and operability

フラッシュ位置を物理スロットのみに報告するときに`bdr.standby_slot_names`チェックを制限します。

Bug fix

Reliability and operability

wal_receiver_timeoutが近い場合は、walsenderにフィードバックの返信を要求します

Bug fix

Reliability and operability

BDR拡張機能で自動パーティション分割されたテーブルの依存関係を複数回記録しないでください。<p>これにより、自動パーティションから「予期しない数の拡張機能依存関係レコード」エラーが発生し、これが発生すると競合が発生します。</p ><p>`pg_depend`から二重の依存関係を削除して、既存の壊れたテーブルを手動で修正する必要があることに注意してください</p>

Bug fix

Reliability and operability

レシーバーでのキープアライブ処理を改善します。<p>ストリーミングトランザクションの最中は、クラッシュ時にデータを失う可能性があるため、キープアライブに基づいて位置を更新しないでください。</p>改善すべき新しいフラッシュとシグナリングロジックもあります低 TPS シナリオでの遅延。

Bug fix

Reliability and operability

BDRノードがデータベースに存在する場合にのみ、post `CREATE`コマンドを処理します。

Bug fix

Reliability and operability

競合履歴テーブルにERROR競合をログに記録しないでください。

Bug fix

Reliability and operability

マルチ挿入(COPY)中にconflict_slotが解放された後に使用されていたsegfaultを修正しました(RT76439)。

Bug fix

Reliability and operability

遅延スタンバイスロットに直面したときにワルセンダープロセスがスピンしないようにします(RT80295、RT78290)。<p>スタンバイスロットの1つが遅延している場合にワルセンダープロセスがCPUの100%を消費するように、ラッチをリセットするシグナリングを修正します。</p >

Bug fix

Reliability and operability

`bdr.standby_slot_names`使用時の`wal_sender_timeout`のハンドリングを修正(RT78290)

Bug fix

Reliability and operability

ALTER TABLEで基になるリレーションを1回だけロックするようにします(RT80204)。

Bug fix

User Experience

`bdr.monitor_local_replslots`の切断されたスロットのレポートを修正しました。これらは、以前に切断されたのではなく、欠落していると報告された可能性があります。

Bug fix

Reliability and operability

`bdr.get_subscription_progress()`ファンクションおよびそのファンクションを使用する`bdr.subscription_summary`でのダウンしたサブスクリプションのタイムスタンプレポートを修正しました。以前はゴミの値を報告していました。

Bug fix

Reliability and operability

BDRワーカーのさまざまな場所でのスナップショットの処理を修正しました。

Bug fix

User Experience

モニタリング機能で使用可能な値がない場合、タイムスタンプとLSNをNULLとして報告することについて、より一貫性を保ちます。

Bug fix

Reliability and operability

ライタプロセスを切り替えるときのログ情報を削減します。

Bug fix

Reliability and operability

PGコマンドラインで構成パラメーターが指定された場合、スーパーユーザーチェックを行いません。そこではまだトランザクションを実行できません。その段階でスーパーユーザーが変更されることが保証されています。

Bug fix

Reliability and operability

バイト単位のラグサイズを計算するには64ビットを使用します。ラグの大きいオーバーフローのリスクをなくす。

アップグレード

このリリースは、次のバージョンのBDRからのアップグレードをサポートしています。

  • 4.0.0以降

  • 3.7.15

  • 3.7.16

アップグレードする前に、

Upgrade Guide に記載されているプロセスと制限を読んで理解してください。