Re: Libpq support to connect to standby server as priority

Haribabu Kommi <kommi.haribabu@gmail.com>

From: Haribabu Kommi <kommi.haribabu@gmail.com>
To: Robert Haas <robertmhaas@gmail.com>
Cc: laurenz.albe@cybertec.at, Jing Wang <jingwangian@gmail.com>, Pg Hackers <pgsql-hackers@postgresql.org>, "Tsunakawa, Takayuki" <tsunakawa.takay@jp.fujitsu.com>
Date: 2018-09-28T07:31:47Z
Lists: pgsql-hackers

Attachments

On Thu, Jul 19, 2018 at 10:59 PM Haribabu Kommi <kommi.haribabu@gmail.com>
wrote:

>
> On Wed, Jul 18, 2018 at 10:53 PM Robert Haas <robertmhaas@gmail.com>
> wrote:
>
>> On Wed, Jul 4, 2018 at 9:14 AM, Laurenz Albe <laurenz.albe@cybertec.at>
>> wrote:
>> >   What about keeping the first successful connection open and storing
>> it in a
>> >   variable if we are in "prefer-read" mode.
>> >   If we get the read-only connection we desire, close that cached
>> connection,
>> >   otherwise use it.
>>
>> I like this idea.  If I recall correctly, the logic in this area is
>> getting pretty complex, so we might need to refactor it for better
>> readability and maintainability.
>>
>
> OK. I will work on the code refactoring first and then provide the
> prefer-read option on top it.
>

commits d1c6a14bacf and 5ca00774194 have refactored the logic
of handling the different connection states.

Attached is a rebased patch after further refactoring the new option
code for easier maintenance.

Regards,
Haribabu Kommi
Fujitsu Australia

Commits

  1. Make test_target_session_attrs more robust against connection failure.

  2. Extend the abilities of libpq's target_session_attrs parameter.

  3. Mark default_transaction_read_only as GUC_REPORT.

  4. Introduce a new GUC_REPORT setting "in_hot_standby".

  5. Avoid spamming the client with multiple ParameterStatus messages.

  6. Avoid harmless Valgrind no-buffer-pin errors.

  7. Restructure libpq code to remove some duplicity

  8. libpq: Add target_session_attrs parameter.