On Thu, Jan 16, 2025 at 4:53 AM Peter Smith <smithpb2...@gmail.com> wrote:
>
> On Wed, Jan 15, 2025 at 9:24 PM Ajin Cherian <itsa...@gmail.com> wrote:
> >
> >
> >
> > On Wed, Jan 15, 2025 at 5:33 PM Shubham Khanna 
> > <khannashubham1...@gmail.com> wrote:
> > > Previously, the warning was necessary because the 'two-phase' option
> > > was not available, and users needed to be informed about the default
> > > behavior regarding 'two-phase' commit. However, with the recent
> > > addition of the 'two-phase' option, users can now directly configure
> > > this behavior during the setup process.
> > > Given this enhancement, the warning message is no longer relevant and
> > > should be removed from the documentation to reflect the latest changes
> > > accurately. Updating the documentation will help ensure that it aligns
> > > with the current functionality and avoids any potential confusion for
> > > users.
> >
> > Hi Shubham,
> >
> > Even though the documentation is updated, the actual code still gives a 
> > warning, when you try and create pg_createsubscriber with the 
> > --enable-two-phase option:
> >
> > pg_createsubscriber: warning: two_phase option will not be enabled for 
> > replication slots
> > pg_createsubscriber: detail: Subscriptions will be created with the 
> > two_phase option disabled.  Prepared transactions will be replicated at 
> > COMMIT PREPARED.
> >
> > This is coming from code in check_publisher()
> >
> >     if (max_prepared_transactions != 0)
> >     {
> >         pg_log_warning("two_phase option will not be enabled for 
> > replication slots");
> >         pg_log_warning_detail("Subscriptions will be created with the 
> > two_phase option disabled.  "
> >                               "Prepared transactions will be replicated at 
> > COMMIT PREPARED.");
> >     }
> >
> > I think this code needs to be updated as well.
> >
>
> Hi Shubham.
>
> I'm not so sure about the documentation change of v10.
>
> Sure, we can remove the warnings in the docs and just assume/expect
> the user to be aware that there is a new '--enable-two-phase' option
> that they should be using. That is what v10 is now doing.
>
> OTOH, if the user (accidentally?) omits the new '--enable-two-phase'
> switch then all this two-phase documentation still seems relevant.
>
> ~
>
> In other words, we could've left all this documented information
> intact, but just qualify the paragraph. For example:
>
> CURRENTLY (v9)
> pg_createsubscriber sets up logical replication with two-phase commit
> disabled. This means that any prepared transactions will be replicated
> at the time of COMMIT PREPARED, without advance preparation. Once
> setup is complete, you can manually drop and re-create the
> subscription(s) with the two_phase option enabled.
>
>
> SUGGESTION
> Unless the '--enable-two-phase' switch is specified,
> pg_createsubscriber sets up ...
>
> ~
>
> Similarly, to help (accident prone?) users we could leave this code
> warning [1] intact, but just change the condition slightly, and add a
> helpful hint on how to avoid the problem.
>
> CURRENTLY (v10)
>     if (max_prepared_transactions != 0)
>     {
>         pg_log_warning("two_phase option will not be enabled for
> replication slots");
>         pg_log_warning_detail("Subscriptions will be created with the
> two_phase option disabled.  "
>                               "Prepared transactions will be
> replicated at COMMIT PREPARED.");
>     }
>
> SUGGESTION
>     if (max_prepared_transactions != 0 && !opt->two_phase)
>     {
>         pg_log_warning("two_phase option will not be enabled for
> replication slots");
>         pg_log_warning_detail("Subscriptions will be created with the
> two_phase option disabled.  "
>                               "Prepared transactions will be
> replicated at COMMIT PREPARED.");
>         pg_log_warning_hint("You can use '--enable-two_phase' switch
> to enable two_phase.");
>     }
>
> ~~~
>
> But, check what other people think just in case I am in the minority
> by thinking these warnings in docs/code are still potentially useful.
>

I agree with your suggestions. I have used your suggestions and added
them to the latest patch.
The v11 version patch attached at [1] has the changes for the same.

[1] - 
https://www.postgresql.org/message-id/CAHv8Rj%2BZqc9qVEaJDW03Cux_S_CMHWNM056qqJi5%2Bz9vSYgtew%40mail.gmail.com

Thanks and Regards,
Shubham Khanna.


Reply via email to