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> BDRクラスターで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

ローカルモードへのフラグの切り替えにRaftリクエストが必要になることを許可します。に接続して、ローカルモードにスイッチます。</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フィルタを使いmakeする新しいコントロールが追加されています。<br /> - query_match -定義されたクエリーがこの正規表現とマッチする必要がある場合<br /> - Exclusive - trueの場合、他の一致したフィルタは考慮されません(つまり、排他フィルタのみが適用されます)。マルチプルの排他フィルタがマッチする場合、エラーをスローします</p>

Feature

User Experience

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

`bdr.{add,remove}_camo_pair`関数を簡素化して、 voidを結果ます。

Feature

Initial Experience

グローバルロックを取得する前に接続性/ラグチェックを追加します。<p>明らかな接続性の問題がある場合に、アプリケーションまたはユーザがロックタイムアウトを取得するまで数分待つ必要がありません。</p><p> 、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> ファンクションの「run_on_nodes」バリアントで終了した場合、 `bdr.ddl_replication`をオフに設定しログ。これにより、モニタリング機能のログの洪水がなくなります。</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`チェックを制限します(RT77985、RT78290)<p>それ以外の場合、`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ワーカーのさまざまな場所でのsnapshotのハンドリングを修正しました。

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 に記載されているプロセスと制限を読んで理解makeてください。