| From: | Heikki Linnakangas <hlinnakangas(at)vmware(dot)com> | 
|---|---|
| To: | Andres Freund <andres(at)2ndquadrant(dot)com>, <pgsql-hackers(at)postgresql(dot)org> | 
| Subject: | Re: New wal format distorts pg_xlogdump --stats | 
| Date: | 2014-12-04 14:26:02 | 
| Message-ID: | 54806EFA.2030908@vmware.com | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-hackers | 
On 11/25/2014 05:36 AM, Andres Freund wrote:
> Hi,
>
> The new WAL format calculates FPI vs plain record data like:
> 	rec_len = XLogRecGetDataLen(record) + SizeOfXLogRecord;
> 	fpi_len = record->decoded_record->xl_tot_len - rec_len;
>
> Due to the amount of data now handled outside the main data portion ,
> that doesn't seem correct to me. As an example, a couple thousand
> inserts with full_page_writes=off now yields:
>
> Type                                           N      (%)          Record size      (%)             FPI size      (%)        Combined size      (%)
> ----                                           -      ---          -----------      ---             --------      ---        -------------      ---
> Heap/INSERT                                30167 ( 99.53)               814509 ( 99.50)               965856 ( 99.54)              1780365 ( 99.52)
>
> I think fpi_len now needs to only count the sum of the of the actual
> length of block images, and all the rest needs to be rec_len.
Yeah, that's broken.
I propose the attached. Or does anyone want to argue for adding an
XLogRecGetFPILen() accessor macro for the hole_length in xlogreader.h. 
It's not something a redo routine would need, nor most XLOG-reading 
applications, so I thought it's better to just have pg_xlogdump peek 
into the DecodedBkpBlock struct directly.
- Heikki
| Attachment | Content-Type | Size | 
|---|---|---|
| fix-fpi-calculation-1.patch | text/x-diff | 1.2 KB | 
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Craig Ringer | 2014-12-04 14:30:46 | Re: libpq pipelining | 
| Previous Message | Alex Shulgin | 2014-12-04 14:16:52 | Re: [COMMITTERS] pgsql: Keep track of transaction commit timestamps |