On Tue, Sep 30, 2008 at 4:32 PM, Heikki Linnakangas <
[EMAIL PROTECTED]> wrote:

>
> pg_relation_size() doesn't include the size of the FSM. Should it? I'm
> thinking "no",


No


> but pg_total_relation_size() should.


+1


> The FSM is not updated during WAL replay. That means that after crash
> recovery, the FSM won't be completely up-to-date, but at roughly the state
> it was at last checkpoint. In a warm stand-by, the FSM will reflect the
> situation at last full backup. We need to think when the FSM should be
> updated during WAL replay. Probably not after every record, because of the
> overhead, but certainly more often than never.


I haven't seen the code, but would it be possible to have a resource manager
for FSM, and let that rmgr accumulate the FSM updates in memory and then
flush the changes after a threshold (or at Checkpoint record, whichever is
first).


>
> VACUUM VERBOSE output no longer prints the number of pages with "usable
> free space", because we no longer track such a value during the vacuum. You
> can use contrib/pg_freespacemap to view the contents of the FSM in detail,
> but should VACUUM VERBOSE still print something about the amount of free
> space on the relation? Perhaps the total amount of free space in the
> relation?


I vote for contrib/pg_freespacemap functions to be included in the core
since FSM is in core. If that happens, we wouldn't need VACUUM for reporting
this.

Best regards,
-- 
[EMAIL PROTECTED]
[EMAIL PROTECTED] gmail | hotmail | indiatimes | yahoo }.com

EnterpriseDB      http://www.enterprisedb.com

Mail sent from my BlackLaptop device

Reply via email to