Thread: Checkpoints and buffers that are hint-bit-dirty

Checkpoints and buffers that are hint-bit-dirty

From
Gregory Stark
Date:
When we checkpoint we write out all dirty buffers. But ISTM we don't really
need to write out buffers which are dirty but which have an LSN older than the
previous checkpoint. Those represent buffers which were dirtied by a
non-wal-logged modification, ie, hint bit setting. The other non-wal-logged
operations will sync the buffer themselves when they're done.

I guess it doesn't really buy much, probably just a slight delay in writing
out the page until bgwriter gets around to it. Conceivably you could have a
hot buffer with many missing hint bits which will get written out on several
checkpoints but how many of those can you have? And extending the checkpoint
doesn't seem like much of a concern. On the other hand it wouldn't be hard to
check would it?

--  Gregory Stark EnterpriseDB          http://www.enterprisedb.com



Re: Checkpoints and buffers that are hint-bit-dirty

From
Tom Lane
Date:
Gregory Stark <stark@enterprisedb.com> writes:
> When we checkpoint we write out all dirty buffers. But ISTM we don't really
> need to write out buffers which are dirty but which have an LSN older than the
> previous checkpoint. Those represent buffers which were dirtied by a
> non-wal-logged modification, ie, hint bit setting. The other non-wal-logged
> operations will sync the buffer themselves when they're done.

In the current dispensation we don't really care how long a checkpoint
takes, so I don't see the advantage to be gained.
        regards, tom lane


Re: Checkpoints and buffers that are hint-bit-dirty

From
Gregory Stark
Date:
"Tom Lane" <tgl@sss.pgh.pa.us> writes:

> Gregory Stark <stark@enterprisedb.com> writes:
>> When we checkpoint we write out all dirty buffers. But ISTM we don't really
>> need to write out buffers which are dirty but which have an LSN older than the
>> previous checkpoint. Those represent buffers which were dirtied by a
>> non-wal-logged modification, ie, hint bit setting. The other non-wal-logged
>> operations will sync the buffer themselves when they're done.
>
> In the current dispensation we don't really care how long a checkpoint
> takes, so I don't see the advantage to be gained.

I agree that just a shifting of i/o to the checkpoint from bgwriter isn't
interesting. 

Saving i/o is still i/o saved -- if it doesn't shorten the checkpoint it
reduces its i/o bandwidth demands. But again, I couldn't come up with any
realistic scenario where the actual i/o saved is anything more than a token
amount. I thought I would toss the idea up in case I was missing something.

--  Gregory Stark EnterpriseDB          http://www.enterprisedb.com