> > In most cases you're going to see extremely few reads compared to 
> > writes on pg_stats, right? So why not have the backends 
> connect to the 
> > stats process (or perhaps use UDP, or use the pipe, or 
> whatever) and 
> > fetch the data when needed. So when nobody fetches any 
> data, there is 
> > no overhead (except for the stats process adding up values, 
> of course).
> 
> That's a thought.  You'd still want the stats file to 
> preserve the data across shutdowns, but the update rate could 
> be far slower, maybe once every few minutes.  The other nice 
> thing is that when you do want the stats, you could get 
> current values, not half-a-second-behind values.

Exactly. For those who care a lot about their stats data, we could offer
a config parameter for how often to write out the stats file.


> > Then you could also push down some filtering to the stats process - 
> > for example, when you are reading from pg_stat_activity there is no 
> > need to send over the row level stats. IIRC, today you have to read 
> > (and write) the whole stats file anyways.
> 
> No; the current behavior of grabbing a snapshot of the whole 
> stats dataset is a feature, not a bug.  It lets you sit there 
> and correlate the data using multiple queries, without 
> worrying that the numbers are changing under you.  We'd lose 
> this ability if the data had to be re-fetched for each query 
> because we didn't grab it all.

Oh. Good point. Didn't even know we had that feature, but now that I do
I see it's a good one :-)

//Magnus

---------------------------(end of broadcast)---------------------------
TIP 4: Have you searched our list archives?

               http://archives.postgresql.org

Reply via email to