Re: [HACKERS] More stats about skipped vacuums - Mailing list pgsql-hackers
From | Masahiko Sawada |
---|---|
Subject | Re: [HACKERS] More stats about skipped vacuums |
Date | |
Msg-id | CAD21AoCRn6Q0wGG7UwGVsQJZbocNsRaZByJomUy+-GRkVH-i9A@mail.gmail.com Whole thread Raw |
In response to | Re: [HACKERS] More stats about skipped vacuums (Kyotaro HORIGUCHI <horiguchi.kyotaro@lab.ntt.co.jp>) |
Responses |
Re: [HACKERS] More stats about skipped vacuums
|
List | pgsql-hackers |
On Mon, Dec 11, 2017 at 8:15 PM, Kyotaro HORIGUCHI <horiguchi.kyotaro@lab.ntt.co.jp> wrote: > At Mon, 27 Nov 2017 13:51:22 -0500, Robert Haas <robertmhaas@gmail.com> wrote in <CA+Tgmob2tuqvEZfHV2kLC-xobsZxDWGdc1WmjLg5+iOPLa0NHg@mail.gmail.com> >> On Mon, Nov 27, 2017 at 1:49 AM, Kyotaro HORIGUCHI >> <horiguchi.kyotaro@lab.ntt.co.jp> wrote: >> > Hmmm. Okay, we must make stats collector more effeicient if we >> > want to have additional counters with smaller significance in the >> > table stats. Currently sizeof(PgStat_StatTabEntry) is 168 >> > bytes. The whole of the patchset increases it to 232 bytes. Thus >> > the size of a stat file for a database with 10000 tables >> > increases from about 1.7MB to 2.4MB. DSM and shared dynahash is >> > not dynamically expandable so placing stats on shared hash >> > doesn't seem effective. Stats as a regular table could work but >> > it seems too-much. >> >> dshash, which is already committed, is both DSM-based and dynamically >> expandable. > > Yes, I forgot about that. We can just copy memory blocks to take > a snapshot of stats. > >> > Is it acceptable that adding a new section containing this new >> > counters, which is just loaded as a byte sequence and parsing >> > (and filling the corresponding hash) is postponed until a counter >> > in the section is really requested? The new counters need to be >> > shown in a separate stats view (maybe named pg_stat_vacuum). >> >> Still makes the stats file bigger. > > I considered dshash for pgstat.c and the attached is a *PoC* > patch, which is not full-fledged and just working under a not so > concurrent situation. > > - Made stats collector an auxiliary process. A crash of stats > collector leads to a whole-server restarting. > > - dshash lacks capability of sequential scan so added it. > > - Also added snapshot function to dshash. It just copies > unerlying DSA segments into local memory but currently it > doesn't aquire dshash-level locks at all. I tried the same > thing with resize but it leads to very quick exhaustion of > LWLocks. An LWLock for the whole dshash would be required. (and > it is also useful to resize() and sequential scan. > > - The current dshash doesn't shrink at all. Such a feature also > will be required. (A server restart causes a shrink of hashes > in the same way as before but bloat dshash requires copying > more than necessary size of memory on takeing a snapshot.) > > The size of DSA is about 1MB at minimum. Copying entry-by-entry > into (non-ds) hash might be better than copying underlying DSA as > a whole, and DSA/DSHASH snapshot brings a kind of dirty.. > > > Does anyone give me opinions or suggestions? > The implementation of autovacuum work-item has been changed (by commit 31ae1638) because dynamic shared memory is not portable enough. IIUC this patch is going to do the similar thing. Since stats collector is also a critical part of the server, should we consider whether we can change it? Or the portability problem is not relevant with this patch? Regards, -- Masahiko Sawada NIPPON TELEGRAPH AND TELEPHONE CORPORATION NTT Open Source Software Center
pgsql-hackers by date: