Routing functions#
bdr.create_proxy#
Create a proxy configuration.
Synopsis#
bdr.create_proxy(proxy_name text, node_group text, proxy_mode text);
Parameters#
Name |
Type |
Default |
Description |
|---|---|---|---|
proxy_name |
text |
Name of the new proxy. |
|
node_group |
text |
Name of the group to be used by the proxy. |
|
proxy_mode |
text |
'default' |
Mode of the proxy. It can be 'default' (listen_port connections follow write leader, no read_listen_port), 'read-only' (no listen_port, read_listen_port connections follow read-only nodes), or 'any' (listen_port connections follow write_leader, read_listen_port connections follow read-only nodes). Default is 'default'. |
When proxy_mode is set to 'default' , all read options in the proxy
config will be set to NULL. When it’s set to 'read-only' , all write
options in the proxy config will be set to NULL. When set to 'any'
all options will be set to their defaults.
bdr.alter_proxy_option#
Change a proxy configuration
Synopsis#
bdr.alter_proxy_option(proxy_name text, config_key text, config_value text);
Parameters#
Name |
Type |
Default |
Description |
|---|---|---|---|
proxy_name |
text |
Name of the proxy to be changed. |
|
config_key |
text |
Key of the option in the proxy to be changed. |
|
config_value |
text |
New value to be set for the given key. |
The table shows the proxy options (config_key ) that can be changed
using this function.
Option |
Description |
|---|---|
listen_address |
Address for the proxy to listen on. Default is '{0.0.0.0}' |
listen_port |
Port for the proxy to listen on. Default is '6432' in 'default' or 'any' mode and '0' in 'read-only' mode which disables the write leader following port. |
max_client_conn |
Maximum number of connections for the proxy to accept. Default is '32767'. |
max_server_conn |
Maximum number of connections the proxy can make to the Postgres node. Default is '32767'. |
server_conn_timeout |
Connection timeout for server connections. Default is '2' (seconds). |
server_conn_keepalive |
Keepalive interval for server connections. Default is '10' (seconds). |
consensus_grace_period |
Duration for which proxy continues to route even upon loss of a Raft leader. If set to 0s, proxy stops routing immediately. Default is generally '6' (seconds) for local proxies and '12' (seconds) for global proxies. These values will be overridden if raft_response_timeout, raft_global_election_timeout, or raft_group_election_timeout are changed from their defaults. |
read_listen_address |
Address for the read-only proxy to listen on. Default is '{0.0.0.0}'. |
read_listen_port |
Port for the read-only proxy to listen on. Default is '6433' in 'read-only' or 'any' mode and '0' in 'default' mode which disables the read-only port . |
read_max_client_conn |
Maximum number of connections for the read-only proxy to accept. Default is '32767'. |
read_max_server_conn |
Maximum number of connections the read-only proxy can make to the Postgres node. Default is '32767'. |
read_server_conn_keepalive |
Keepalive interval for read-only server connections. Default is '10' (seconds). |
read_server_conn_timeout |
Connection timeout for read-only server connections. Default is '2' (seconds). |
read_consensus_grace_period |
Duration for which read-only proxy continues to route even upon loss of a Raft leader. Default is 1 hour. |
Changing any of these values requires a restart of the proxy.
bdr.drop_proxy#
Drop a proxy configuration.
Synopsis#
bdr.drop_proxy(proxy_name text);
Parameters#
Name |
Type |
Default |
Description |
|---|---|---|---|
proxy_name |
text |
Name of the proxy to be dropped. |
bdr.routing_leadership_transfer#
Changing the routing leader transfers the leadership of the node group to another node.
Synopsis#
bdr.routing_leadership_transfer(node_group_name text,
leader_name text,
transfer_method text DEFAULT strict,
transfer_timeout interval DEFAULT 10s);
Parameters#
Name |
Type |
Default |
Description |
|---|---|---|---|
node_group_name |
text |
Name of group where the leadership transfer is requested. |
|
leader_name |
text |
Name of node that will become write leader. |
|
transfer_method |
text |
'strict' |
Type of the transfer. It can be 'fast' or the default, 'strict', which checks the maximum lag. |
transfer_timeout |
interval |
'10s' |
Timeout of the leadership transfer. Default is 10 seconds. |