RE: speed up a logical replica setup
Hayato Kuroda (Fujitsu) <kuroda.hayato@fujitsu.com>
Commits
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
pg_createsubscriber: Remove obsolete comment
- 71795d1cb41b 17.0 landed
- 1330843bb78e 18.0 landed
-
pg_createsubscriber: Fix an unpredictable recovery wait time.
- e5ba6a5ab62c 17.0 landed
- 03b08c8f5f3e 18.0 landed
-
Fix unstable test in 040_pg_createsubscriber.
- ae4e072bad5f 17.0 landed
- 9fd8b331dfe1 18.0 landed
-
Fix the testcase introduced in commit 81d20fbf7a.
- ae395f0f7edb 18.0 landed
- 14387ab06503 17.0 landed
-
Further weaken new pg_createsubscriber test on Windows.
- 55c309fc5b08 17.0 landed
- a1333ec048fb 18.0 landed
-
Temporarily(?) weaken new pg_createsubscriber test on Windows.
- 54508209178b 17.0 landed
-
Make pg_createsubscriber warn if publisher has two-phase commit enabled.
- 917754557cc0 17.0 landed
-
Make pg_createsubscriber more wary about quoting connection parameters.
- b3f5ccebd79d 17.0 landed
-
pg_createsubscriber: Remove failover replication slots on subscriber
- 81d20fbf7a03 17.0 landed
-
pg_createsubscriber: Remove replication slot check on primary
- b96391382626 17.0 landed
-
pg_createsubscriber: Only --recovery-timeout controls the end of recovery process
- 04c8634c0c4d 17.0 landed
-
pg_createsubscriber: creates a new logical replica from a standby server
- d44032d01463 17.0 landed
-
Add some const decorations
- 48018f1d8c12 17.0 landed
-
Add option force_initdb to PostgreSQL::Test::Cluster:init()
- ff9e1e764fcc 17.0 cited
-
Remove MSVC scripts
- 1301c80b2167 17.0 cited
Attachments
- shorter_subconninfo.sh (application/octet-stream)
Dear Shubham, Thanks for testing our codes! > While reviewing the v15 patches I discovered that subscription > connection string has added a lot of options which are not required > now: > v15-0001 > postgres=# select subname, subconninfo from pg_subscription; > subname | subconninfo > -------------------------------+------------------------------------------ > pg_createsubscriber_5_1867633 | host=localhost port=5432 dbname=postgres > (1 row) > > > > v15-0001+0002+0003 > postgres=# select subname, subconninfo from pg_subscription; > subname | > > subconninfo > > > > -------------------------------+-------------------------------------------------- > ---------------------- > ---------------------------------------------------------------------------------- > ---------------------- > ---------------------------------------------------------------------------------- > ---------------------- > ------------------------------ > pg_createsubscriber_5_1895366 | user=shubham > passfile='/home/shubham/.pgpass' channel_binding=prefer ho > st=127.0.0.1 port=5432 sslmode=prefer sslcompression=0 > sslcertmode=allow sslsni=1 ssl_min_protocol_versi > on=TLSv1.2 gssencmode=disable krbsrvname=postgres gssdelegation=0 > target_session_attrs=any load_balance_ > hosts=disable dbname=postgres > (1 row) > > > Here, we can see that channel_binding, sslmode, sslcertmode, sslsni, > gssencmode, krbsrvname, etc are getting included. This does not look > intentional, we should keep the subscription connection same as in > v15-0001. You should attach the script the reproducer. I suspected you used pg_basebackup -R command for setting up the standby. In this case, it is intentional. These settings are not caused by the pg_createsubscriber, done by pg_basebackup. If you set primary_conninfo manually like attached, these settings would not appear. As the first place, listed options (E.g., passfile, channel_binding, sslmode, sslcompression, sslcertmode, etc...) were set when you connect to the database via libpq functions. PQconninfoOptions in fe-connect.c lists parameters and their default value. v15-0003 reuses the primary_conninfo for subconninfo attribute. primary_conninfo is set by pg_basebackup specified with '-R' option. The content is built in GenerateRecoveryConfig(), which bypass parameters from PQconninfo(). This function returns all the libpq connection parameters even if it is set as default. So primary_conninfo looks longer. I don't think this works wrongly. Users still can set an arbitrary connection string as primary_conninfo. You just use longer string unintentionally. Best Regards, Hayato Kuroda FUJITSU LIMITED https://www.fujitsu.com/