データノードが冗長化されている場合、中央管理ノードからデータノードに接続するとき、データノードのスタンバイサーバに接続し、負荷を分散できます。この機能は、中央管理ノードからデータノードへの通信にConnection Managerが使用されている場合のみ有効です。
利用者は、中央管理ノードへの接続文字列のtarget_session_attrsにアクセスするデータノードの属性を指定することで、適切なノードに接続できます。
この機能を使用するためには、以下のパラメータを指定する必要があります。
パラメータ | 設定値 |
---|---|
enable_fdw_acs (bool) | 中央管理ノードからデータノードへのアクセスに、target_session_attrsに指定したターゲットを使用する場合は、onを指定します。デフォルト値はoffです。 |
例えば、中央管理ノードを経由してデータノードのスタンバイサーバに優先して接続したい場合、以下のように接続文字列を指定します。
target_session_attrs=prefer-read enable_fdw_acs=on
以下に中央管理ノードが1台、データノード2台で、それぞれのノードを冗長化した場合のconmgr.confの記載例を示します。
# 接続に関する設定 # 中央管理ノード共通の設定 collect_shardinfo_interval=5 collect_shardinfo_timeout=10 collect_shardinfo_conninfo='dbname=postgres' # 中央管理ノードのプライマリサーバの設定 node_name0='COORDINATOR' backend_host0='coordinator_primary_host' backend_port0=12345 watchdog_port0=11111 # 中央管理ノードのスタンバイサーバの設定 node_name1='COORDINATOR' backend_host1='coordinator_standby_host' backend_port1=51234 watchdog_port1=22222 # datanode1の設定 # datanode1のプライマリサーバの設定 node_name2='datanode1' backend_host2='datanode1_primary_host' backend_port2=45123 watchdog_port2=33333 # datanode1のスタンバイサーバの設定 node_name3='datanode1' backend_host3='datanode1_standby_host' backend_port3=34512 watchdog_port3=44444 # datanode2の設定 # datanode2のプライマリサーバの設定 node_name4='datanode2' backend_host4='datanode2_primary_host' backend_port4=23451 watchdog_port4=55555 # datanode2のスタンバイサーバの設定 node_name5='datanode2' backend_host5='datanode2_standby_host' backend_port5=54321 watchdog_port5=66666 # 監視間隔に関する設定 heartbeat_connect_interval=5 heartbeat_connect_timeout=10 # ログの出力先の設定 log_destination='syslog'