Re: Replication server timeout patch
Robert Haas <robertmhaas@gmail.com>
From: Robert Haas <robertmhaas@gmail.com>
To: Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>
Cc: Fujii Masao <masao.fujii@gmail.com>, Josh Berkus <josh@agliodbs.com>, pgsql-hackers@postgresql.org
Date: 2011-03-26T01:42:01Z
Lists: pgsql-hackers
On Wed, Mar 23, 2011 at 6:33 AM, Heikki Linnakangas <heikki.linnakangas@enterprisedb.com> wrote: > On 16.03.2011 11:11, Fujii Masao wrote: >> >> On Wed, Mar 16, 2011 at 4:49 PM, Fujii Masao<masao.fujii@gmail.com> >> wrote: >>> >>> Agreed. I'll change the patch. >> >> Done. I attached the updated patch. > > I don't much like the API for this. Walsender shouldn't need to know about > the details of the FE/BE protocol, pq_putbytes_if_available() seems too low > level to be useful. > > I think a better API would be to have a non-blocking version of > pq_putmessage(). We can make the output buffer in pqcomm.c resizeable, so > that when the message doesn't fit in the output buffer in pq_putmessage(), > the buffer is enlarged instead of trying to flush it. > > Attached is a patch using that approach. This is a much smaller patch, and > easier to understand. I'm not totally happy with the walsender main loop, it > seems to work as it is, but the logic has become quite complicated. Ideas > welcome on how to simplify that. Heikki, are you planning to commit this, either with or without further revisions? -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company