|From:||Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>|
|To:||Tomas Vondra <tv(at)fuzzy(dot)cz>|
|Cc:||Jeff Janes <jeff(dot)janes(at)gmail(dot)com>, pgsql-hackers(at)postgresql(dot)org|
|Subject:||Re: PATCH: Split stats file per database WAS: autovacuum stress-testing our system|
|Views:||Raw Message | Whole Thread | Download mbox | Resend email|
Here's a ninth version of this patch. (version 8 went unpublished). I
have simplified a lot of things and improved some comments; I think I
understand much of it now. I think this patch is fairly close to
committable, but one issue remains, which is this bit in
/* In any case, we can just throw away all the db requests, but we need to
* write dummy files for databases without a stat entry (it would cause
* issues in pgstat_read_db_statsfile_timestamp and pgstat wait timeouts).
* This may happen e.g. for shared DB (oid = 0) right after initdb.
DBWriteRequest *req = slist_container(DBWriteRequest, next,
* Create dummy files for requested databases without a proper
* dbentry. It's much easier this way than dealing with multiple
* timestamps, possibly existing but not yet written DBs etc.
if (!pgstat_get_db_entry(req->databaseid, false))
The problem here is that creating these dummy entries will cause a
difference in autovacuum behavior. Autovacuum will skip processing
databases with no pgstat entry, and the intended reason is that if
there's no pgstat entry it's because the database doesn't have enough
activity. Now perhaps we want to change that, but it should be an
explicit decision taken after discussion and thought, not side effect
from an unrelated patch.
Hm, and I now also realize another bug in this patch: the global stats
only include database entries for requested databases; but perhaps the
existing files can serve later requestors just fine for databases that
already had files; so the global stats file should continue to carry
entries for them, with the old timestamps.
Álvaro Herrera http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services
|Next Message||Alvaro Herrera||2013-02-14 19:27:55||Re: PATCH: Split stats file per database WAS: autovacuum stress-testing our system|
|Previous Message||Peter Eisentraut||2013-02-14 19:01:53||Re: [RFC] ideas for a new Python DBAPI driver (was Re: libpq test suite)|