PGD settings
============

PGD固有の構成設定を設定することもできます。特に断りのない限り、値はいつでも設定できます。

競合処理
--------

bdr.default_conflict_detection
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

新しく作成されるテーブルのデフォルトの競合検出方法を設定します。
 :ref:`bdr.alter_table_conflict_detection() <Conflicts>` と同じ値を受け入れます。

グローバルシーケンスパラメーター
--------------------------------

bdr.default_sequence_kind
^^^^^^^^^^^^^^^^^^^^^^^^^

デフォルトの :ref:`sequence kind <Global sequence management interfaces>`  を設定します。

デフォルト値は\ ``distributed`` で、これは、 ``snowflakeid``
が\ ``int8`` シーケンスつまり\ ``bigserial`` に使用され、\ ``int4``
つまり\ ``serial`` および\ ``int2`` シーケンスの\ ``galloc``
シーケンスに使用されることを意味します。

DDL処理
-------

bdr.default_replica_identity
^^^^^^^^^^^^^^^^^^^^^^^^^^^^

新しく作成されるテーブルに\ ``REPLICA IDENTITY``
のデフォルト値を設定します。 ``REPLICA IDENTITY``
は、更新または削除された行を識別するためにログ先行書き込みに書き込まれる情報を定義します。

受け入れられる値は次のとおりです。

-  ``default``
   —主キーの列の古い値がある場合は、それを記録しますこれはデフォルトのPostgreSQL動作です。

-  ``full`` —行内のすべての列の古い値を記録します。

-  ``nothing`` —古い行に関する情報は記録しません。

-  ``auto`` — PKを使用するテーブルはREPLICA IDENTITY
   DEFAULTで作成され、PKのないテーブルはREPLICA IDENTITY
   FULLで作成されます。これはデフォルトのPGD動作です。

詳細は、 :ref:`PostgreSQL documentation <Monitoring through SQL>` を参照してください。

PGDは、 ``PRIMARY KEY`` または\ ``UNIQUE``
制約のないテーブルで\ ``UPDATE`` および\ ``DELETE``
オペレーションをレプリケートできません。例外は、テーブルのレプリカIDがテーブル固有の構成または\ ``bdr.default_replica_identity``
による\ ``FULL`` の場合です。

``bdr.default_replica_identity`` が\ ``default``
で、テーブルに\ ``UNIQUE`` 制約がある場合、それは\ ``REPLICA IDENTITY``
として自動的に選択されません。上記のように、テーブルの作成時または後に明示的に設定する必要があります。

テーブルのレプリカIDを\ ``full``
に設定すると、テーブルのワイヤに書き込まれるWALの量とレプリケートされるデータの量が増加します。

bdr.ddl_replication
^^^^^^^^^^^^^^^^^^^

ノード全体でDDLを自動的にレプリケートしますデフォルトは\ ``on`` です。

このパラメーターは、
bdr_superuserまたはsuperuserロールによってのみ設定できます。

DDLを実行するか、 ``bdr.ddl_replication = off``
を使用してPGD管理機能を呼び出すと、管理者が介入できるまでレプリケーションが停止する状況が発生する場合があります。詳細は、
 :ref:`DDL replication filtering <DDL replication filtering>` を参照してください。

``bdr.ddl_replication`` が\ ``off`` に設定されている場合は常に、 ``LOG``
レベルのログメッセージがPostgreSQLサーバーログに出力されます。さらに、キャプチャされたDDLコマンドまたはPGDレプリケーションファンクションのレプリケーションがこの設定によりスキップされるたびに、
``WARNING-level`` メッセージが書き込まれます。

bdr.role_replication
^^^^^^^^^^^^^^^^^^^^

ノード全体でROLEコマンドを自動的にレプリケートしますデフォルトは\ ``on``
です。スーパーユーザーのみがこのパラメーターを設定できます。この設定は、
``bdr.ddl_replication`` もオンになっている場合にのみ機能します。

すべてのノードでロールが同期していることを確認する外部方法を使用せずにこれをオフにすると、管理者が介入するまでレプリケートDDLがレプリケーションを中断する場合があります。

 :ref:`DDL and role manipulation statements <DDL and role manipulation statements>` を参照

詳細については。

bdr.ddl_locking
^^^^^^^^^^^^^^^

DDLのグローバルロックの操作モードを構成します。

このパラメーターは、
bdr_superuserまたはsuperuserロールによってのみ設定できます。

考えられるオプションは次のとおりです。

-  all —すべてのDDL操作にグローバルロックを使用します。

-  dml
   —リレーションのグローバルDMLロックを取得することにより書き込みを防止する必要があるDDL操作にのみグローバルロックを使用します。

-  オフ — DDL操作にはグローバルロックを使用しないでください。

``bdr.ddl_replication`` が\ ``off`` に設定されている場合は常に、 ``LOG``
レベルのログメッセージがPostgreSQLサーバーログに出力されます。さらに、この設定によりグローバルロックステップがスキップされるたびに、
``WARNING``
メッセージが書き込まれます。一部のステートメントでは、2つの\ ``WARNING``
メッセージが発生するのが通常です。1つはDMLロックをスキップし、もう1つはDDLロックをスキップします。

下位互換性の為、\ ``bdr.ddl_locking`` はエイリアスをサポートしています。
``on`` および\ ``true`` は、\ ``all`` のエイリアスです。 ``false``
は、\ ``off`` のエイリアスです。

 :ref:`グローバルロック <グローバルロック>` も参照

``bdr.truncate_locking``
^^^^^^^^^^^^^^^^^^^^^^^^

この構成オプションは、 TRUNCATEコマンドのロック動作を設定します。
TRUNCATEがtrueの場合、\ ``bdr.ddl_locking``
設定に従うかどうかを決定します。デフォルトではfalseに設定されます。

グローバルロック
----------------

DDLロックは、
 :ref:`bdr.ddl_locking <bdr.ddl_locking>` によって制御されます。他のグローバルロック設定には次のものが含まれます。

bdr.global_lock_max_locks
^^^^^^^^^^^^^^^^^^^^^^^^^

ノードで保持できるグローバルロックの最大数を設定しますデフォルト1000。
Postgresサーバー起動時にのみ設定できます。

bdr.global_lock_timeout
^^^^^^^^^^^^^^^^^^^^^^^

グローバルロックの待機の最大許可時間を設定しますデフォルト10分。値0はこのタイムアウトを無効にします。

bdr.global_lock_statement_timeout
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

グローバルロックを保持するステートメントの最大許可期間デフォルト60分を設定します。値0はこのタイムアウトを無効にします。

``bdr.global_lock_idle_timeout``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

グローバルロックを保持するトランザクションのアイドル時間の最大許可期間を設定しますデフォルト10分。値0はこのタイムアウトを無効にします。

``bdr.predictive_checks``
^^^^^^^^^^^^^^^^^^^^^^^^^

予測チェックのログレベルを設定します現在グローバルロックによってのみ使用されます。
``DEBUG`` 、\ ``LOG`` 、\ ``WARNING`` デフォルト、または\ ``ERROR``
です。予測チェックは、特定の操作を実行するときに予想されるクラスター状態の早期検証です。タイムアウトを待機するのではなく、早期フェイルのこれらの操作に使用できます。グローバルロック用語では、
PGDは、接続されている十分なノードがあり、グローバルロックに必要なクォーラムを取得するための妥当な遅延制限内であることをチェックします。

ノード管理
----------

bdr.replay_progress_frequency
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

レプリケーション位置情報をクラスターの残りの部分に送信する間隔を設定しますデフォルト1分

bdr.standby_slot_names
^^^^^^^^^^^^^^^^^^^^^^

他のスロットよりも前にレプリケーションの変更を受信して確認するために必要なスロットを設定します。この設定は、主にフェールオーバーにフィジカルスタンバイを使用する場合、またはサブスクライブ専用ノードを使用する場合に役立ちます。

汎用レプリケーション
--------------------

bdr.writers_per_subscription
^^^^^^^^^^^^^^^^^^^^^^^^^^^^

サブスクリプションごとのライターのデフォルト数を設定しますPGDでは、グループの\ ``bdr.alter_node_group_config``
を使用してこれを変更することもできます。

bdr.max_writers_per_subscription
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

サブスクリプションごとのライターの最大数上記の設定の上限を設定します。

``bdr.xact_replication``
^^^^^^^^^^^^^^^^^^^^^^^^

現在のトランザクションをレプリケートしますデフォルトは\ ``on`` です。

これをオフにすると、トランザクション全体がローカルのみになります。つまり、トランザクションは、
PGDによる論理デコードおよび論理デコードのその他のすべてのダウンストリームターゲットから可視されません。データは、ロジカルスタンバイノードを含む他のノードに転送されません。

このパラメーターは、
bdr_superuserまたはsuperuserロールによってのみ設定できます。

このパラメーターは、 ``bdr.permit_unsafe_commands = on`` を除き
``SET LOCAL``
コマンドを使用して現在のトランザクション内でのみ設定できます。

..  Note::
   トランザクションレプリケーションを無効にしてもWALは生成されますが、これらの変更はオリジンでフィルタリングされます。

..  Warning::
   `bdr.xact_replication` をオフにすると、ノード間でデータの不一貫性が発生します。ノード間のデータの相違からリカバリーするため、またはレプリケーションを続行するために単一ノードの変更が必要なレプリケーション状況にのみ使用します。自分の責任で使用してください。

bdr.permit_unsafe_commands
^^^^^^^^^^^^^^^^^^^^^^^^^^

一般的な使用にとって安全でないと考えられるコマンドの安全性チェックをオーバーライドするオプション。

``bdr_superuser`` またはPostgreSQLスーパーユーザーが必要です。

..  Warning::
   通常安全だと考えられていないコマンドは、一貫性のない結果を生成するか、レプリケーションを完全に中断する可能性があります。自分の責任で使用してください。

bdr.batch_inserts
^^^^^^^^^^^^^^^^^

単一のトランザクションでの1つのテーブルへの連続した挿入の数により、そのテーブルの挿入のバッチ処理がオンになります。

この設定では、大規模なデータのレプリケーションを、挿入のセットではなくCOPYとして内部的にロードできます。これは、ノード参加中の初期データのコピー方法でもあります。

bdr.maximum_lock_skew
^^^^^^^^^^^^^^^^^^^^^

この設定は、\ ``bdr.maximum_clock_skew_action``
をトリガーする前に、受信トランザクションコミットタイムスタンプとサブスクライバーの現在時間の最大差を指定します。

現在再生されているトランザクションのタイムスタンプが、サブスクライバーの現在時刻と比較して将来的であるかどうかを確認します。その場合、その差が\ ``bdr.maximum_clock_skew``
より大きい場合、\ ``bdr.maximum_clock_skew_action``
設定で指定されたアクションを実行します。

デフォルトは\ ``-1``
で、これはクロックスキューを無視するチェックがオフになることを意味します。すべてのサーバーの時計が同期している場合、0を設定するのが有効です。トランザクションを再生しているという事実は、過去にコミットされたことを意味します。

bdr.maximum_lock_skew_action
^^^^^^^^^^^^^^^^^^^^^^^^^^^^

この設定は、\ ``bdr.maximum_clock_skew``
より高いクロックスキューが検出された場合に実行するアクションを指定します。

この設定には2つの値があります。

-  ``WARN``
   —このファクトに関する警告をログに記録します。警告は、サーバーログの氾濫を防ぐために、最大で1分に1回デフォルトでログに記録されます。

-  ``WAIT``
   —現在のローカルタイムスタンプがリモートコミットタイムスタンプから\ ``bdr.maximum_clock_skew``
   を引いたものより古くなくなるまで待機します。

``bdr.accept_connections``
^^^^^^^^^^^^^^^^^^^^^^^^^^

この設定は、 PGDへの接続を有効または無効にします。デフォルト\ ``on``

``bdr_superuser`` またはPostgreSQLスーパーユーザーが必要です。

.. _bdr.standby_slot_names-1:

bdr.standby_slot_names
^^^^^^^^^^^^^^^^^^^^^^

この設定は通常、フェールオーバー構成で使用され、このPGDノードのフェールオーバー候補ストリーミング物理レプリカが、サブスクライバーに可視される前にすべての変更を受信およびフラッシュしていることを保証します。これにより、プロバイダーのスタンバイへのフェールオーバー時にコミットが消えないことが保証されます。

コンマ区切りの\ ``bdr.standby_slot_names``
リストに名前がリストされているレプリケーションスロットは、PGDノードのwalsenderによって特別に扱われます。

PGDの論理レプリケーションwalsenderは、ノードがこれらの変更を他のPGDレプリケーションクライアントに送信する前に、すべてのローカル変更が\ ``bdr.standby_slot_names``
のレプリケーションスロットに送信およびフラッシュされるようにします。事実上、スロットの名前付けリストと他のすべてのレプリケーションクライアントの間に同期レプリケーションバリアを提供します。

``bdr.standby_slot_names``
には、任意のレプリケーションスロットをリストできます。論理スロットと物理スロットの両方が機能しますが、通常は物理スロットに使用されます。

この安全対策がないと、サブスクライバーがコミットを受信し、フェールオーバー候補がまだそれを受け取っていないため、フェールオーバー時にプロバイダーから消える2つの異常が発生する可能性があります。

-  1+加入者の場合、加入者は変更を適用した可能性がありますが、新しいプロバイダーは、プロバイダーに関する限り決して起こらなかったため、受け取った変更と競合する新しいトランザクションを実行する可能性があります。

-  2つ以上のサブスクライバーの場合、フェールオーバー時に、すべてのサブスクライバーが変更を適用しているわけではありません。コミットを受け取らなかったサブスクライバーにはそれを取得する方法がないため、サブスクライバーは一貫性のない調整不能な状態になります。

デザインによって\ ``bdr.standby_slot_names``
を設定すると、リストされたノードの必要な数が追いついていない場合、そこにリストされていない他のサブスクライバがプロバイダーに遅れをとります。したがって、モニタリングは重要です。

``bdr.standby_slot_names``
が役立つもう1つのユースケースは、サブスクライバー専用ノードを使用して、通常のPGDノードより先に移動しないことを確認する場合です。これは、
``bdr.standby_slots_min_confirmed``
を少なくとも1つに設定することと、すべての通常のPGDピアノードの論理スロットをリストすることにより、最適に達成できます。

bdr.standby_slots_min_confirmed
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

この設定は、PGDサブスクライバーにデータを送信する前に確認する必要がある\ ``bdr.standby_slot_names``
の数を制御します。

bdr.writer_input_queue_size
^^^^^^^^^^^^^^^^^^^^^^^^^^^

この設定は、受信者が書き込みライタプロセスにデータを送信するために使用する共有メモリキューのサイズを指定します。ライタプロセスが停止しているか、進行が遅い場合、キューがいっぱいになり、受信側プロセスも停止する可能性があります。したがって、このキューに十分な共有メモリを提供することが重要です。デフォルトは1MBで、最大許可サイズは1GBです。
GUCの設定には任意のストレージサイズ指定子を使用できますが、デフォルトはKBです。

bdr.writer_output_queue_size
^^^^^^^^^^^^^^^^^^^^^^^^^^^^

この設定は、レシーバーが書き込みライタプロセスからデータを受信するために使用する共有メモリキューのサイズを指定します。ライタは大量のデータを送信することは想定されていないため、比較的小さいサイズのキューで十分です。デフォルトは32KBで、最大許可サイズは1MBです。
GUCの設定には任意のストレージサイズ指定子を使用できますが、デフォルトはKBです。

bdr.min_worker_backoff_migrate
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

この設定では、特定のワーカーが\ ``bdr.min_worker_backoff_delay``
ミリ秒ごとよりも頻繁に再起動されないようにすることにより、PGDバックグラウンドワーカー起動のレート制限が可能になります。エラーが繰り返されると、バックオフは指数関数的に増加し、最大\ ``bdr.max_worker_backoff_delay``
までジッターが追加されます。

時間単位のサフィックスがサポートされています。

..  Note::
   この設定は現在レシーバーワーカーにのみ影響します。つまり、主にエラーまたは接続障害が発生したときにサブスクリプションが再接続を試行する速さに影響を与えます。

``bdr.min_worker_backoff_delay`` のデフォルトは1秒です。
``bdr.max_worker_backoff_delay`` の場合、1分です。

バックオフ遅延設定が変更され、PostgreSQL構成がリロードされると、現在のすべてのバックオフがリセットを待機します。さらに、
``bdr.worker_task_reset_backoff_all()``
ファンクションは、管理者がすべてのバックオフインターバルを強制的にすぐに有効期限が切れるように提供されています。

共有メモリ内の追跡テーブルは、各種類のワーカーの最終起動時刻を記憶するために維持されます。この追跡テーブルは永続的ではありません。これは、汚れたバックエンド終了後のクラッシュリカバリー中のソフトリスタートを含む、PostgreSQLの再起動によってクリアされます。

ビュー
 :ref:`bdr.worker_tasks <bdr.worker_tasks>` を使用してこの状態を検査できるため、管理者は、現在有効になっているバックオフレート制限を確認できます。

レート制限の目的で、ワーカーはタスクごとに分類されます。このキーは、ワーカーロール、データベースOID、サブスクリプションID、サブスクリプションライタID、拡張ライブラリ名とファンクション名、拡張機能提供のワーカー名、および同期ライターのリモートリレーションIDで構成されています。
``NULL``
は、特定の分類子が適用されない場合に使用されます。たとえば、マネージャーワーカーにはサブスクリプションIDがなく、レシーバーにはライタIDがありません。

CRDT
----

``bdr.crdt_raw_value``
^^^^^^^^^^^^^^^^^^^^^^

 :ref:`CRDTデータ型を使用した列の競合の処理 <CRDTデータ型を使用した列の競合の処理>` の出力フォーマットを設定します。

デフォルト出力この設定が\ ``off``
の場合、ベースCRDTタイプたとえば、\ ``crdt_pncounter``
のbigintの現在値のみを結果ます。 ``on``
に設定されている場合、戻り値はCRDT値の完全な表現を表します。これには、たとえば、マルチプルのノードからの状態を含めることができます。

コミットスコープ
----------------

bdr.commit_scope
^^^^^^^^^^^^^^^^

現在またはデフォルトの :ref:`コミットスコープ <コミットスコープ>` を設定しますデフォルトは空の文字列です。

Commit At Most Once
-------------------

bdr.camo_local_mode_deploy
^^^^^^^^^^^^^^^^^^^^^^^^^^

CAMOの非同期モードで適用され、トランザクションを確認する必要があるCAMOパートナーで通常発生するオーバーヘッドをエミュレートするコミット遅延。デフォルト5ミリ秒。この機能を無効にするには、
``0`` に設定します。 -

``bdr.camo_enable_client_warnings``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

CAMOプロパティを保証できないデータベースでアクティビティが実行された場合、警告を発します。これはデフォルトで有効になっています。十分な情報のあるユーザーは、これを無効にして、ログに記録される警告の量を減らすことができます。

トランザクションストリーミング
------------------------------

bdr.default_streaming_mode
^^^^^^^^^^^^^^^^^^^^^^^^^^

サブスクライバノードによるトランザクションストリーミングを制御するために使用されます。許可される値は\ ``off``
、\ ``writer`` 、\ ``file`` 、および\ ``auto``
です。デフォルト\ ``auto`` 。 ``off``
に設定されている場合、サブスクライバーはトランザクションストリーミングを要求しません。他の値に設定されている場合、サブスクライバーはトランザクションストリーミングを要求し、パブリッシャーはそれをサポートしている場合、およびグループレベルで構成されている場合にそれを提供します。詳細については、
 :ref:`トランザクションストリーミング <トランザクションストリーミング>` を参照してください。

遅延制御
--------

bdr.lag_control_max_commit_deploy
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

ミリ秒単位での許容できる最大許容コミット後遅延。

``bdr.lag_control_max_lag_size``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

許容できる最大許容遅延サイズキロバイト単位。

bdr.lag_control_max_lag_time
^^^^^^^^^^^^^^^^^^^^^^^^^^^^

ミリ秒単位の許容できる最大許容遅延時間。

bdr.lag_control_min_conforming_nodes
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

許容可能な遅延測定値を下回るように必要なノードの最小数。

bdr.lag_control_commit_deploy_adjust
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

最大コミット遅延時間の一部として測定されるコミット遅延のマイクロ調整。デフォルト値の0.01%では、最大コミット遅延に到達するまでに100ネットインクリメントが必要です。

bdr.lag_control_sample_interval
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

ミリ秒単位の遅延サンプルとコミット遅延マイクロ調整間の最小時間。

bdr.lag_control_commit_deploy_start
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

コミット遅延インクリメントが適用され始める遅延しきい値。許容可能な遅延尺度の割合で表されます。デフォルト値の1.0%では、許容可能な遅延測定値に違反するまでコミット遅延のインクリメントは開始されません。

より小さい分数を設定することにより、許容可能な遅延尺度に漸近するように早期に「遅延曲線を曲げる」ことにより、違反を防止できる場合があります。

タイムスタンプベースのスナップショット
--------------------------------------

bdr.timestamp_snapshot_keep
^^^^^^^^^^^^^^^^^^^^^^^^^^^

タイムスタンプベースのスナップショット使用の有効なスナップショットを保持する時間デフォルトは\ ``0``
、過去のスナップショットを保持しないことを意味します。

モニタリングとロギング
----------------------

bdr.debug_level
^^^^^^^^^^^^^^^

PGDがデバッグメッセージを書き込むために使用するログレベルを定義します。デフォルト値は\ ``debug2``
です。詳細なPGDデバッグ出力を表示する場合は、
``bdr.debug_level = 'log'`` を設定します。

``bdr.trace_level``
^^^^^^^^^^^^^^^^^^^

上記と同様に、これはPGDトレースメッセージに使用するログレベルを定義します。
EDB
Postgres分散クラスターのすべてのノードでトレースを有効にすると、EDBサポートが問題を診断するのに役立つ場合があります。これは、Postgresサーバーの起動時にのみ設定できます。

..  Warning::
   `bdr.debug_level` または`bdr.trace_level` を値>= `log_min_messages` に設定すると、非常に大量のログ出力が生成される可能性があるため、ディスク領域の枯渇を防ぐためのログフィルタリング、アーカイブ、およびローテーションの計画が整っていない限り、運用環境で長期的に有効にしないでください。 !!!

bdr.track_subscription_apply
^^^^^^^^^^^^^^^^^^^^^^^^^^^^

各サブスクリプションの適用統計を追跡します。

bdr.track_relation_apply
^^^^^^^^^^^^^^^^^^^^^^^^

各リレーションの適用統計を追跡します。

bdr.track_apply_lock_timing
^^^^^^^^^^^^^^^^^^^^^^^^^^^

リレーションの統計を追跡するときにロックタイミングを追跡します。

デコードワーカー
----------------

bdr.enable_wal_decoder
^^^^^^^^^^^^^^^^^^^^^^

 :ref:`デコードワーカー <デコードワーカー>` を使用して単一ノードで論理変更レコードLCR送信を有効にします。デフォルトでは、この設定はfalseです。
trueに設定すると、デコードワーカープロセスが開始され、WAL送信側は生成したLCRを送信します。
falseに設定し直すと、LCRを使用するWAL送信者が再起動され、WALを直接使用します。

..  Note ::
   PGDグループ内のすべてのノードでこの設定を有効にし、グループで`enable_wal_decoder` オプションをtrueに設定する必要があります。 !!!

bdr.receive_lcr
^^^^^^^^^^^^^^^

別のノードをサブスクライブする場合、この設定により、ノードはサブスクリプションの論理変更レコードLCRの使用を要求できます。デフォルトでは、この設定はfalseです。下流ノードでこの設定がtrueの場合、ノードは上流ノードに送信するときにLCRを使用することを要求します。ノードで\ ``bdr.enable_wal_decoder``
をtrueに設定する場合、この設定も\ ``true`` に設定します。

..  Note ::
   PGDグループ内のすべてのノードでこの設定を有効にし、グループで`enable_wal_decoder` オプションをtrueに設定する必要があります。 !!!

bdr.lcr_cleanup_interval
^^^^^^^^^^^^^^^^^^^^^^^^

論理変更レコードLCRファイルのクリーンアップ間隔。
 :ref:`デコードワーカー <デコードワーカー>` が有効になっている場合、デコードワーカーはLCRファイルをバッファとして保存します。これらのファイルは定期的にクリーンアップされ、この設定は2つの連続するクリーンアップ間の間隔を制御します。デフォルトは3分です。ゼロに設定すると、クリーンアップが無効になります。

接続設定
--------

以下は、すべてのクロスノード\ ``libpq``
接続に影響を与える接続設定のセットです。デフォルトはかなり保守的な値に設定されており、ほとんどの運用ニーズをカバーします。すべての変数には\ ``SIGHUP``
コンテキストがあります。これは、リロード時に変更が適用されることを意味します。

bdr.global_connection_timeout
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

接続中に待機する最大時間秒単位。
10進の整数、たとえば、10として書き込みます。ゼロ、負の数、または指定なしは、無期限に待機することを意味します。最小許可タイムアウトは2秒であるため、値1は次のように解釈されます。

2. 

デフォルトは15秒です。

bdr.global_keepalives
^^^^^^^^^^^^^^^^^^^^^

TCPキープアライブを使用するかどうかを制御します。デフォルト値は1、オンを意味します。キープアライブが不要な場合は、これを0、つまりオフに変更できます。このパラメーターは、Unixドメインソケットによって作成された接続では無視されます。

デフォルトは1オンです。

bdr.global_keepalives_idle
^^^^^^^^^^^^^^^^^^^^^^^^^^

TCPがキープアライブメッセージをサーバーに送信するまでの非アクティブな秒数を制御します。値0は、システムのデフォルトを使用します。このパラメータは、Unixドメインソケットによって作成された接続、またはキープアライブが無効になっている場合に無視されます。
``TCP_KEEPIDLE``
または同等のソケットオプションが使用可能なシステムでのみサポートされています。他のシステムでは、効果はありません。

デフォルトは1秒です。

bdr.global_keepalives_interval
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

サーバーによって確認されなかったTCPキープアライブメッセージを再送信する秒数を制御します。値0は、システムのデフォルトを使用します。このパラメータは、Unixドメインソケットによって作成された接続、またはキープアライブが無効になっている場合に無視されます。
``TCP_KEEPINTVL``
または同等のソケットオプションが使用可能なシステムでのみサポートされています。他のシステムでは、効果はありません。

デフォルトは2秒です。

bdr.global_keepalives_count
^^^^^^^^^^^^^^^^^^^^^^^^^^^

サーバーへのクライアントの接続がデッドと見なされる前に、失われる可能性のあるTCPキープアライブの数を制御します。値0は、システムのデフォルトを使用します。このパラメータは、Unixドメインソケットによって作成された接続、またはキープアライブが無効になっている場合に無視されます。
``TCP_KEEPCNT``
または同等のソケットオプションが使用可能なシステムでのみサポートされています。他のシステムでは、効果はありません。

デフォルトは3です。

bdr.global_tcp_user_timeout
^^^^^^^^^^^^^^^^^^^^^^^^^^^

接続が強制的に閉じられるまでに、送信されたデータが未確認のままでいられるミリ秒数を制御します。値0は、システムのデフォルトを使用します。このパラメーターは、Unixドメインソケットによって作成された接続では無視されます。
``TCP_USER_TIMEOUT``
が利用可能なシステムでのみサポートされています。他のシステムでは、効果はありません。

デフォルトは5秒ミリ秒5000で表されます。

内部設定-Raftタイムアウト ### bdr.raft_global_election_timeout
--------------------------------------------------------------

ネットワーク障害を説明するために、Raftコンセンサスプロトコルは選択と要求のタイムアウトを実装します。この値は、要求がグローバルトップレベルグループに送信されるときに使用されます。デフォルトでは6秒6sです。

bdr.raft_local_election_timeout
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

ネットワーク障害を説明するために、Raftコンセンサスプロトコルは選択と要求のタイムアウトを実装します。この値は、要求がサブグループに送信されるときに使用されます。デフォルトでは3秒3sです。

bdr.raft_response_timeout
^^^^^^^^^^^^^^^^^^^^^^^^^

レスポンスの場合、 :ref:`内部設定-Raftタイムアウト  bdr.raft_global_election_timeout <内部設定-Raftタイムアウト  bdr.raft_global_election_timeout>` および :ref:`bdr.raft_local_election_timeout <bdr.raft_local_election_timeout>` の設定が必要に応じて使用されます。この動作は、この変数を設定することによりオーバーライドできます。
``bdr.raft_response_timeout``
の設定は、いずれの選択タイムアウト値よりも小さい必要があります。この変数を-1に設定すると、オーバーライドが無効になります。デフォルト-1です。

内部設定 - その他のRaft値
-------------------------

bdr.raft_keep_min_entries
^^^^^^^^^^^^^^^^^^^^^^^^^

ログ圧縮を行うときにRaftログに保持するエントリの最小数デフォルト\ ``1000``
、PGD 5.3以前の\ ``100`` 。 ``0``
の値は、ログ圧縮を無効にします。これは、Postgresサーバーの起動時にのみ設定できます。

..  Warning::
   ログ圧縮が無効になっている場合、ログのサイズは永久に増加します。 !!!

bdr.raft_log_min_apply_duration
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

ステートマシンを前進させるために、Raftは内部ログにエントリを追加します。通常オペレーションでは、追加には数ミリ秒しかかかりません。これにより、その追加アクションの期間に上限しきい値が設定され、それを超えると
``INFO``
メッセージがログに記録されます。これは問題を示している可能性があります。このパラメーターのデフォルト値は3000ミリ秒です。

bdr.raft_log_min_message_duration
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

コンセンサス要求をログに記録する場合。
bdrコンセンサス要求の往復時間を測定し、時間がこのパラメーターを超えた場合は\ ``INFO``
メッセージをログに記録します。このパラメーターのデフォルト値は5000ミリ秒です。

bdr.raft_group_max_connections
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

PostgresサーバーのすべてのPGDグループの最大接続数。これらの接続は、グループのノード間でbdrコンセンサス要求を伝送します。このパラメーターのデフォルト値は100接続です。
Postgresサーバー起動時にのみ設定できます。

内部設定 - その他の値
---------------------

bdr.backwards_compatibility
^^^^^^^^^^^^^^^^^^^^^^^^^^^

``bdr.bdr_version_num`` 、\ ``30618``
などで使用されるのと同じ数値形式で、下位互換性のあるバージョンを指定します。一般に不要な効果がある場合でも、以前のPGDバージョンの正確な動作を有効にします。現在のPGDバージョンのデフォルト。これはリリースごとに異なるため、値が現在のバージョンと異なる場合を除き、構成ファイルで明示的に使用しないことをお勧めします。

bdr.track_replication_estimates
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

ピアノードの適用レートとキャッチアップ間隔の観点から、レプリケーション推定を追跡します。
CAMOのようなプロトコルは、この情報を使用して、ピアノードの準備状況を推定できます。このパラメーターはデフォルトで有効になっています。

bdr.lag_tracker_apply_rate_weight
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

ローカルノードからWALを適用するという点でピアノードがどれだけ遅れているかを監視し、遅延追跡の適用レートの移動平均を計算します。このパラメーターは、この移動平均計算で新しい計算値がどの程度寄与するかを指定します。デフォルト値は0.1です。
