Re: Minimal logical decoding on standbys
Amit Khandekar <amitdkhan.pg@gmail.com>
Commits
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Reduce the log level in 035_standby_logical_decoding.pl.
- 3034dc56ef4b 16.0 landed
-
035_standby_logical_decoding: Add missing waits for replication
- 57411c82ce86 16.0 landed
-
For cascading replication, wake physical and logical walsenders separately
- e101dfac3a53 16.0 landed
-
Handle logical slot conflicts on standby
- 26669757b6a7 16.0 landed
-
Support invalidating replication slots due to horizon and wal_level
- be87200efd93 16.0 landed
-
Prevent use of invalidated logical slot in CreateDecodingContext()
- 4397abd0a2af 16.0 landed
-
Replace replication slot's invalidated_at LSN with an enum
- 15f8203a5975 16.0 landed
-
Pass down table relation into more index relation functions
- 61b313e47eb9 16.0 landed
-
Assert only valid flag bits are passed to visibilitymap_set()
- a88a18b1250b 16.0 landed
-
Remove unused _bt_delitems_delete() argument.
- dc43492e46c7 14.0 cited
-
Add xl_btree_delete optimization.
- d2e5e20e5711 13.0 cited
Attachments
- logicaldecodng_standby_v3.tar.gz (application/x-gzip)
On Fri, 27 Sep 2019 at 23:21, Robert Haas <robertmhaas@gmail.com> wrote: > > On Fri, Sep 27, 2019 at 12:41 PM Amit Khandekar <amitdkhan.pg@gmail.com> wrote: > > Preferably I want wait_for_xmins() to get rid of the $node parameter, > > because we can deduce it using slot name. But that requires having > > get_node_from_slotname(). Your suggestion was to remove > > get_node_from_slotname() and add back the $node param so as to reduce > > duplicate code. Instead, how about keeping wait_for_xmins() in the > > PostgresNode.pm() ? This way, we won't have duplication, and also we > > can get rid of param $node. This is just my preference; if you are > > quite inclined to not have get_node_from_slotname(), I will go with > > your suggestion. > > I'd be inclined not to have it. I think having a lookup function to > go from slot name -> node is strange; it doesn't really simplify > things that much for the caller, and it makes the logic harder to > follow. It would break outright if you had the same slot name on > multiple nodes, which is a perfectly reasonable scenario. Alright. Attached is the updated patch that splits the file into two files, one that does only xmin related testing, and the other test file that tests conflict recovery scenarios, and also one scenario where drop-database drops the slots on the database on standby. Removed get_slot_xmins() and get_node_from_slotname(). Renamed 'replica' to 'standby'. Used node->backup() function instead of pg_basebackup command. Renamed $master_slot to $master_slotname, similarly for $standby_slot. -- Thanks, -Amit Khandekar EnterpriseDB Corporation The Postgres Database Company