On Tue, Feb 18, 2025 at 2:24 PM vignesh C <vignesh21@gmail.com> wrote:
>
> On Fri, 14 Feb 2025 at 15:36, Amit Kapila <amit.kapila16@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.