pg.ddx.io  pgsql-docs@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Peter Geoghegan <pg@bowt.ie>
Cc: baron@xaprb.com, PostgreSQL-documentation <pgsql-docs@postgresql.org>
Subject: Re: pg_stat_statements max size clarification
Date: Sat, 15 Jul 2017 22:17:24 -0400
Message-ID: <7691.1500171444@sss.pgh.pa.us> (raw)
In-Reply-To: <CAH2-Wzkwz3sKJnuoii0bwYgxvnopFwybte1982Y8BAdwd0m8og@mail.gmail.com>
References: <20170716003147.9230.86974@wrigleys.postgresql.org>
	<CAH2-Wzkwz3sKJnuoii0bwYgxvnopFwybte1982Y8BAdwd0m8og@mail.gmail.com>
List-Unsubscribe: <mailto:majordomo@postgresql.org?body=unsub%20pgsql-docs>

Peter Geoghegan <pg@bowt.ie> writes:
> On Sat, Jul 15, 2017 at 5:31 PM,  <baron@xaprb.com> wrote:
>> I wonder if &quot;least-executed&quot; is correct. I&#39;m not an expert and haven&#39;t
>> convinced myself of this by examining the code, but I think after N distinct
>> queryid&#39;s have been seen, then any additional ones are ignored. But that may
>> not be &quot;least-executed&quot; at all. It&#39;s &quot;most-recent&quot; instead. I think we need
>> a new phrase here.

> It's most executed since tracking for the entry began, with a special
> heuristic for queries that take a long time to execute, and might
> therefore consistently be evicted before execution finishes and costs
> are tallied (see "sticky entries" stuff for full details). Most
> executed means the total number of calls, which may not be the best
> thing to evict on the basis of, but certainly isn't too bad.

> The way it actually works is that either 5% of all entries or 10
> entries are evicted (whichever amount is greatest) once
> pg_stat_statements.max entries are reached. You're right that this
> means that the most marginal of entries cannot be usefully tracked,
> but I doubt that that's much of a problem in practice. It's the usual
> "recency versus frequency" cache eviction problem, but for query cost
> tracking purposes if 5,000 entries or 10,000 entries is truly
> insufficient, then pg_stat_statements probably isn't the right tool.

The short answer, really, is that the algorithm is too complicated to be
worth explaining in the documentation --- and it's subject to change,
anyway.  But "least-executed" is a reasonable short description, since
frequency of use is a major factor in the decisions.  Certainly
"most-recent" is flat out wrong.

I am not sure whether this complaint is actually meant as a bug report
that the algorithm didn't seem to work well on the OP's use case.  If so,
we'd need a lot more details to have any hope of improving it (and the
documentation comments aren't the right submission forum, either).

			regards, tom lane


-- 
Sent via pgsql-docs mailing list (pgsql-docs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-docs



view thread (4+ messages)  latest in thread

Message-ID: <7691.1500171444@sss.pgh.pa.us>
Permalink:  ../7691.1500171444@sss.pgh.pa.us/
Also on:    postgresql.org/message-id/7691.1500171444@sss.pgh.pa.us

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-docs@postgresql.org
  Cc: tgl@sss.pgh.pa.us, pg@bowt.ie
  Subject: Re: pg_stat_statements max size clarification
  In-Reply-To: <7691.1500171444@sss.pgh.pa.us>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox