[pgpool-hackers: 143] Re: Do we need to rephrase the precondition for load-balancing?

Gurjeet Singh singh.gurjeet at gmail.com
Fri Oct 26 20:20:09 JST 2012


On Fri, Oct 26, 2012 at 6:00 AM, Tatsuo Ishii <ishii at postgresql.org> wrote:

> Sorry for late reply.
>
> > Hi,
> >
> >     The docs [1] say that one of the preconditions for load-balancing is
> > that
> >
> >     > The query must not be in an explicitly declared transaction (i.e.
> not
> > in a BEGIN ~ END block)
>
> Yeah, the doc is outdated in this regard.
>
> >     But I see that this is not a strict statement. I extracted a specific
> > backend process' log lines (generated using log_per_node_statement), and
> I
> > could see that on line 6, the SELECT query was load-balanced to a replica
> > (node id 2) and the next INSERT statement was correctly sent to the
> master.
> > But any SELECT after that INSERT was not sent to the replica, and only to
> > the master.
> >
> >     So can we say that load balancing _does_ occur in an explicitly
> > declared transaction, but as soon as a DML operation is perfored, any
> > subsequent SELECT queries will be sent only to master.
>
> Yes, that is expected behavior if you are using streaming replication
> mode. The reason why SELECTs are sent to master after DML issued is,
> standby cannot see the modified rows.
>

Can we expect doc changes, or I should probably file a bug-report against
documentation so that it gets taken care of in due process.

Best regards,
-- 
Gurjeet Singh

http://gurjeet.singh.im/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.sraoss.jp/pipermail/pgpool-hackers/attachments/20121026/9e96202d/attachment.html>


More information about the pgpool-hackers mailing list