PGD Proxy configuration
=======================

グループレベルの構成
--------------------

ルーティングの構成は、 SQLインターフェイスまたはPGD
CLIを介して実行されます。

 :ref:`bdr.alter_node_group_option() <Node management>` ファンクションを呼び出すことにより、ルーティングの決定を有効にできます。例

.. code:: text

   SELECT bdr.alter_node_group_option(region1-group, enable_proxy_routing, true)

同じオプションを\ ``false`` に設定することにより、無効にできます。

追加のグループレベルのオプションは、ルーティングの決定に影響します。

-  ``route_writer_max_lag``
   —書き込みリーダーとして選択される新しい書き込み候補のバイト単位の最大遅延。これを通過した候補者がない場合、ライタは自動的に選択されません。

-  ``route_reader_max_lag`` —ノードが実行可能な読み取り専用ノードPGD
   5.5.0以降とみなされるバイト単位の最大遅延。

ノードレベルの構成
------------------

 :ref:`bdr.alter_node_option() <Node management>` を使用してルーティングのノードごとの構成を設定します。ルーティングに影響する使用可能なオプションは次のとおりです。

-  ``route_dsn`` —このノードに接続するためにプロキシが使用するdsn。

-  ``route_priority``
   —同じノードグループ内の他のノードに対するノードの相対ルーティング優先度。書き込みリーダーを選択する場合にのみ使用されます。

-  ``route_fence``
   —ノードがルーティングからフェンスされているかどうかを判断します。フェンスされると、ノードはPGDプロキシから接続を受信できません。したがって、書き込みリーダーになることも、読み取り専用ノードプールで使用することもできません。

-  ``route_writes``
   —書き込みをこのノードにルーティングできるかどうか、つまりノードが書き込みリーダーになることができるかどうかを決定します。

-  ``route_reads``
   —読み取り専用接続をこのノードにルーティングできるかどうかを決定しますPGD
   5.5.0以降。

プロキシレベルの構成
--------------------

SQLインターフェイスを使用してプロキシを構成できます。

プロキシ構成の作成と削除
^^^^^^^^^^^^^^^^^^^^^^^^

 :ref:`bdr.create_proxy <bdr.create_proxy>` を使用してプロキシ構成を追加できます。たとえば、
``SELECT bdr.create_proxy('region1-proxy1', 'region1-group');``
は、PGDグループ\ ``region1-group`` に\ ``region1-proxy1``
という名前のプロキシのデフォルト構成を作成します。

ここで指定されるプロキシの名前は、プロキシ構成ファイルで指定された名前と同じである必要があります。

``SELECT bdr.drop_proxy('region1-proxy1')``
を使用してプロキシ構成を削除できます。プロキシを削除すると、非アクティブ化されます。

プロキシ構成の変更
^^^^^^^^^^^^^^^^^^

 :ref:`bdr.alter_proxy_option() <EDB Postgres Distributed Proxy overview>` ファンクションを使用して、プロキシごとにオプションを構成できます。

使用可能なオプションは次のとおりです。

-  ``listen_address`` —リッスンするプロキシのアドレス。

-  ``listen_port`` —リッスンするプロキシのポート。

-  ``max_client_conn`` —プロキシが受け入れる接続の最大数。

-  ``max_server_conn`` —プロキシがPostgresノードへの接続の最大数。

-  ``server_conn_timeout`` —サーバー接続の接続タイムアウト。

-  ``server_conn_keepalive`` —サーバー接続のキープアライブ間隔。

-  ``consensus_grace_period`` —
   Raftリーダーを失ってもプロキシがルーティングを継続する期間。 ``0s``
   に設定されている場合、プロキシはルーティングをすぐに停止します。

-  ``read_listen_address`` —リッスンする読み取り専用プロキシのアドレス。

-  ``read_listen_port`` —リッスンする読み取り専用プロキシのポート。

-  ``read_max_client_conn``
   —読み取り専用プロキシが受け入れる接続の最大数。

-  ``read_max_server_conn``
   —読み取り専用プロキシがPostgresノードへの接続の最大数。

-  ``read_server_conn_keepalive``
   —読み取り専用サーバー接続のキープアライブ間隔。

-  ``read_server_conn_timeout``
   —読み取り専用サーバー接続の接続タイムアウト。

-  ``read_consensus_grace_period`` —
   Raftリーダーを失っても、読み取り専用プロキシがルーティングを継続する期間。
