Compatibility changes
=====================

概要
----

PGDバージョン6.4には、5.xおよびその他の以前のバージョンと互換性のない変更がいくつかあります。
4.xのユーザーの場合、 
`version 5.x compatibility <https://www.enterprisedb.com/docs/pgd/5.8/upgrades/compatibility/>`_ の変更は引き続き適用されます。

接続マネージャー
----------------

PGD 6では、 PGD
5のプロキシソリューションを、バックグラウンドワーカーを使用して緊密に統合されたアプローチで置き換える新しい接続マネージャーを導入し、PGDの読み書き、読み取り専用、およびhttpステータスネットワークインターフェイスを公開します。これは、管理する個別のPGD-プロキシインスタンスがなくなり、接続マネージャーがグループ構成を使用するため、古いプロキシ機能がすべて削除されたことを意味します。

さらに、 ``bdr.proxy_conifg`` テーブルと\ ``bdr.proxy_config_summary``
ビューが削除されました。接続マネージャーの構成に\ ``bdr.node_group_config_summary``
を使用する必要があります。これには、ルーティングを含む他のすべてのグループ設定も含まれます。

詳細については、 :ref:`Connection Manager Authentication <Connection Manager Authentication>` を参照してください。

DDLロックの変更
---------------

新しいグローバルロックタイプ\ ``ddl_locking = leader``
があり、グローバルDMLロックの代わりにデフォルトでPGDバージョン6.4で使用されます。このロックにより、テーブルがすべてのグループリーダーですべてのノードではなくで排他的にロックされます。
``LOCK TABLE`` および\ ``TRUNCATE TABLE``
は、デフォルトでこの新しいロックタイプを使用するようになりましたデフォルトの動作がオリジンノードの外部でロックしない前に。

``LOCK TABLE`` は、 ``ACCESS SHARE`` 、\ ``ROW SHARE``
、\ ``ROW EXCLUSIVE`` 、\ ``SHARE UPDATE EXCLUSIVE``
にDDLロックを使用し、\ ``SHARE ROW EXCLUSIVE`` 、\ ``EXCLUSIVE``
、および\ ``ACCESS EXCLUSIVE``
にDMLロックを使用するようになりました。これは、 ``SHARE+``
はDMLをブロックしますが、下位レベルはブロックしないことを意味しますこれは、Postgresでこれらのレベルが動作する方法とより密接に連携しています。
``LOCK TABLE`` は、常にDMLロックを使用していました。

結合/部分動作
-------------

ファンクションとノードの状態の変更
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

``bdr.part_node`` の場合

- ``wait_for_completion`` はローカルノードで動作します

- ``force`` オプションは非推奨であり、\ ``bdr.drop_node(force:=true)``
  と同じ動作をします。

``bdr.drop_node`` の場合

- ``cascade`` オプションは削除されました

- ``force``
  は、常に即時にノードをローカルにドロップし、以前のカスケード動作も想定するようになりました

``bdr.join_node_group`` の場合

- ``pause_in_standby`` オプションは削除されました

- ノードがスタンバイかどうかは、 ``bdr.create_node``
  の実行時に\ ``node_kind`` によって決定されます

新しいノード状態\ ``PART_CLEANUP``
が追加されました。これは、グループスロットが分離ノードに関連するレコードを通過するのを待機し、ノードに関連する元のレコードをクリーンアップします。

シーケンス変換
^^^^^^^^^^^^^^

PGDクラスターを作成するときに、既存の :ref:`Sequences <Sequences>` は分散されたものに自動的に変換されます。

ノードを分割するとドロップします
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

ノードが分離されると、最終的にドロップされ、分離の最後にノードは\ ``PARTED``
状態では表示されません。したがって、ノードが\ ``PARTED``
状態に到達するのを待機するスクリプトは変更が必要になる場合があります。また、このオペレーションは、一貫性を保証するために分割ノードからの最後のトランザクションのすべてのクロスのグループスロットまで待機するため、以前のバージョンよりも時間がかかる場合があります。

管理機能の変更
--------------

- ``enable_proxy_routing``
  ノードグループオプションは\ ``enable_routing`` になりましたが、
  ``bdr.alter_node_group_option``
  は下位互換性のため古い構文をサポートしています。ビューには、新しい名前のみが表示されます。

- すでに非推奨である\ ``bdr.alter_node_group_config()``
  は削除されました。代わりに\ ``bdr.alter_node_group_option()``
  を使用してください。

- ``bdr.autopartition()`` の\ ``managed_locally``
  オプションは削除されました。ローカルに管理されるパーティションのみがサポートされるようになりました。同時に\ ``ap_is_local``
  は\ ``bdr.autopartition_rules`` カタログから削除されました。

その他
------

レプリカID
^^^^^^^^^^

- レプリカIDはデフォルトでFULLになりました。

- これにより、ノードのクラッシュと復旧にわたる挿入、更新、および削除間の競合検出におけるいくつかのエッジケースが削除されます。

すべての書き込みで実行
^^^^^^^^^^^^^^^^^^^^^^

- Run on (all) writeはレプリケートされなくなりました。

- ``bdr.xact_replicate`` はデフォルトで\ ``off`` に設定され、run on
  (all)
  nodesコマンドを介して送信されるコマンドのレプリケーションでの偶発的な問題の可能性が減少します。

- 一部のログメッセージを理解しやすいように言い換えました。

- 一部の内部ログメッセージのログレベルが\ ``LOG`` から\ ``DEBUG``
  に低下したため、ログに表示されない場合があります。

一般的なUIの改善
^^^^^^^^^^^^^^^^

- ’pglogical’を含まないように名前変更されたワーカー

- 以前に非推奨だった構成パラメーターGUCが削除されましたこれには、たとえば、pg論理的なプレフィックスが付いているすべてのGUCが含まれます。

- デフォルトでは、競合はPostgresログまたは\ ``conflict_history``
  テーブルのいずれにもログに記録されません

デフォルトの変更
----------------

グローバルロックタイムアウト
^^^^^^^^^^^^^^^^^^^^^^^^^^^^

``bdr.global_lock_timeout`` は、デフォルトで1分に設定されています。

自動同期
^^^^^^^^

``bdr.enable_auto_sync_reconcile``
はデフォルトでONに設定されています。この機能は :ref:`自動同期との関係 <自動同期との関係>` 
で文書化されています。これにより、ダウンノードからの変更を他のすべてのノードと同期できます。
