On Tue, Feb 18, 2025 at 2:24 PM vignesh C <vignes...@gmail.com> wrote: > > On Fri, 14 Feb 2025 at 15:36, Amit Kapila <amit.kapil...@gmail.com> wrote: > > > > Did you try to measure the performance impact of this change? We can > > try a few cases where DDL and DMLs are involved, missing publication > > (drop publication and recreate after a varying number of records to > > check the impact). > > Since we don't have an exact scenario to compare with the patch > (because, in the current HEAD, when the publication is missing, an > error is thrown and the walsender/worker restarts), I compared the > positive case, where records are successfully replicated to the > subscriber, as shown below. For the scenario with the patch, I ran the > same test, where the publication is dropped before the insert, > allowing the walsender to check whether the publication is present. > The test results, which represent the median of 7 runs and the > execution run is in milliseconds, are provided below: > > Brach/records | 100 | 1000 | 10000 | 100000 | 1000000 > Head | 1.214 | 2.548 | 10.823 | 90.3 | 951.833 > Patch | 1.215 | 2.5485 | 10.8545 | 90.94 | 955.134 > % diff | 0.082 | 0.020 | 0.291 | 0.704 | 0.347 > > I noticed that the test run with patches is very negligible. The > scripts used for execution are attached. >
You have used the synchronous_standby_name to evaluate the performance which covers other parts of replication than the logical decoding. It would be better to test using pg_recvlogical. -- With Regards, Amit Kapila.