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