Re: ReadyForQuery()

From: "Simon Riggs" <simon(at)2ndquadrant(dot)com>
To: "Tom Lane" <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: ReadyForQuery()
Date: 2007-01-04 19:12:00
Message-ID: 1167937921.20749.228.camel@silverbirch.site
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Thu, 2007-01-04 at 13:17 -0500, Tom Lane wrote:
> "Simon Riggs" <simon(at)2ndquadrant(dot)com> writes:
> > Wouldn't it be better to issue ReadyForQuery() and then issue the stat
> > stuff in the gap between processing?
>
> To me, "ready for query" means "ready for query", not "I think I might
> be ready soon". Otherwise you could argue for trying to move the
> message emission much further upstream than that. Another problem is
> that on a lot of kernels, control swaps to the client process the
> instant we issue the send(), and if the client is well-coded control
> will swap back when it send()s us the next query. If we rearrange
> things as you suggest then the state display will become quite
> misleading: it will claim we are still busy when actually the client
> has the result, and it will switch to "idle" *after* we've received
> a new command.

Yeh, guessed there were some good arguments for the way it was.

My thinking was, if the client is local and therefore likely to be fast,
we could check for the reply before we signal stats. That way we could
avoid posting idle altogether when we are very busy (and therefore would
like the extra CPU/path length reduction).

OTOH if the client is on the other end of a network, the duration is
relatively lengthy and we'll easily be able to do things in the proposed
order without a problem.

--
Simon Riggs
EnterpriseDB http://www.enterprisedb.com

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Andrew Dunstan 2007-01-04 19:15:17 Re: 8.3 pending patch queue
Previous Message markwkm 2007-01-04 19:08:55 Re: 8.3 pending patch queue