Re: a fast bloat measurement tool (was Re: Measuring relation free space)
Abhijit Menon-Sen <ams@2ndquadrant.com>
From: Abhijit Menon-Sen <ams@2ndQuadrant.com>
To: Andres Freund <andres@anarazel.de>
Cc: Amit Kapila <amit.kapila16@gmail.com>,
pgsql-hackers <pgsql-hackers@postgresql.org>,
Tomas Vondra <tomas.vondra@2ndquadrant.com>,
Simon Riggs <simon@2ndquadrant.com>
Date: 2015-05-11T11:27:08Z
Lists: pgsql-hackers
Attachments
- 0001-Make-pgstattuple-use-heap_form_tuple-instead-of-Buil.patch (text/x-diff) patch 0001
- 0002-Add-pgstatbloat-to-pgstattuple.patch (text/x-diff) patch 0002
Hi Andres. I've attached an updated patch for pgstatbloat, as well as a patch to replace two uses of BuildTupleFromCStrings() elsewhere in pgstattuple. I've made the changes you mentioned in your earlier mail, except that I have not changed the name pending further suggestions about what would be the best name. Also: At 2015-05-09 15:36:49 +0530, ams@2ndQuadrant.com wrote: > > At 2015-05-09 02:20:51 +0200, andres@anarazel.de wrote: > > > > I haven't checked, but I'm not sure that it's safe/meaningful to > > call PageGetHeapFreeSpace() on a new page. > > OK, I'll check and fix if necessary. You're right, PageGetHeapFreeSpace() isn't safe on a new page. I've added a guard to that call in the attached patch, but I'm not sure that's the right thing to do. Should I copy the orphaned new-page handling from lazy_scan_heap? What about for empty pages? Neither feels like a very good thing to do, but then neither does skipping the new page silently. Should I count the space it would have free if it were initialised, but leave the page alone for VACUUM to deal with? Or just leave it as it is? -- Abhijit