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.

Greetings,

Andres Freund

-- 
 Andres Freund                     http://www.2ndQuadrant.com/
 PostgreSQL Development, 24x7 Support, Training & Services


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

Reply via email to