diff options
author | Daniel Gustafsson <dgustafsson@postgresql.org> | 2023-03-29 21:53:38 +0200 |
---|---|---|
committer | Daniel Gustafsson <dgustafsson@postgresql.org> | 2023-03-29 21:53:38 +0200 |
commit | 7f5b19817eaf38e70ad1153db4e644ee9456853e (patch) | |
tree | ae454d99c6e725fff3f0e259c3d0118a83ffd44d /src/test/perl/PostgreSQL/Test/Cluster.pm | |
parent | 44d85ba5a3361dea371d23bd91777ef4c0c4e506 (diff) | |
download | postgresql-7f5b19817eaf38e70ad1153db4e644ee9456853e.tar.gz postgresql-7f5b19817eaf38e70ad1153db4e644ee9456853e.zip |
Support connection load balancing in libpq
This adds support for load balancing connections with libpq using a
connection parameter: load_balance_hosts=<string>. When setting the
param to random, hosts and addresses will be connected to in random
order. This then results in load balancing across these addresses and
hosts when multiple clients or frequent connection setups are used.
The randomization employed performs two levels of shuffling:
1. The given hosts are randomly shuffled, before resolving them
one-by-one.
2. Once a host its addresses get resolved, the returned addresses
are shuffled, before trying to connect to them one-by-one.
Author: Jelte Fennema <postgres@jeltef.nl>
Reviewed-by: Aleksander Alekseev <aleksander@timescale.com>
Reviewed-by: Michael Banck <mbanck@gmx.net>
Reviewed-by: Andrey Borodin <amborodin86@gmail.com>
Discussion: https://postgr.es/m/PR3PR83MB04768E2FF04818EEB2179949F7A69@PR3PR83MB0476.EURPRD83.prod.outlook.
Diffstat (limited to 'src/test/perl/PostgreSQL/Test/Cluster.pm')
-rw-r--r-- | src/test/perl/PostgreSQL/Test/Cluster.pm | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/test/perl/PostgreSQL/Test/Cluster.pm b/src/test/perl/PostgreSQL/Test/Cluster.pm index 3e2a27fb717..a3aef8b5e91 100644 --- a/src/test/perl/PostgreSQL/Test/Cluster.pm +++ b/src/test/perl/PostgreSQL/Test/Cluster.pm @@ -2569,6 +2569,22 @@ sub issues_sql_like =pod +=item $node->log_content() + +Returns the contents of log of the node + +=cut + +sub log_content +{ + my ($self) = @_; + return + PostgreSQL::Test::Utils::slurp_file($self->logfile); +} + + +=pod + =item $node->run_log(...) Runs a shell command like PostgreSQL::Test::Utils::run_log, but with connection parameters set |