Dear hackers,

> > > It was primarily for upgrade purposes only. So, as we can't see a good 
> > > reason
> to
> > > go via pg_dump let's do it in upgrade unless someone thinks otherwise.
> >
> > Removed the new option in pg_dump and modified the pg_upgrade
> > directly use the slot info to restore the slot in new cluster.
> 
> In this version, creations of logical slots are serialized, whereas old ones 
> were
> parallelised per db. Do you it should be parallelized again? I have tested 
> locally
> and felt harmless. Also, this approch allows to log the executed SQLs.

I updated the patch to allow parallel executions. Workers are launched per 
slots,
each one connects to the new node via psql and executes 
pg_create_logical_replication_slot().
Moreover, following points were changed for 0002.

* Ensured to log executed SQLs for creating slots.
* Fixed an issue that 'unreserved' slots could not be upgrade. This change was 
  not expected one. Related discussion was [1].
* Added checks for output plugin libraries. pg_upgrade ensures that plugins
  referred by old slots were installed to the new executable directory. 

[1]: 
https://www.postgresql.org/message-id/TYAPR01MB5866FD3F7992A46D0457F0E6F50BA%40TYAPR01MB5866.jpnprd01.prod.outlook.com

Best Regards,
Hayato Kuroda
FUJITSU LIMITED

Attachment: v21-0001-Always-persist-to-disk-logical-slots-during-a-sh.patch
Description: v21-0001-Always-persist-to-disk-logical-slots-during-a-sh.patch

Attachment: v21-0002-pg_upgrade-Allow-to-replicate-logical-replicatio.patch
Description: v21-0002-pg_upgrade-Allow-to-replicate-logical-replicatio.patch

Attachment: v21-0003-pg_upgrade-Add-check-function-for-logical-replic.patch
Description: v21-0003-pg_upgrade-Add-check-function-for-logical-replic.patch

Reply via email to