alexander.gorrod writes:
Something I've been interested in a number of times is knowing how much I/O is done in service of checkpoints versus "normal" eviction. I've always chickened out, since the information isn't available down in __wt_block_write_off where we know how much is being written. The checkpoint I/O smoothing project (
WT-2389) would be easier to handle if we tracked the information, so I took a look today.How would you feel if I made a change to __wt_block_write so that it takes a set of flags, rather than a bool. At the moment those flags would be:
WT_BLOCK_WRITE_CKSUM
WT_BLOCK_WRITE_CALLER_LOCKED
WT_BLOCK_WRITE_FOR_CHECKPOINTI'd also need to pass a flag from __sync_file through reconciliation, indicating that the operation is being done in service of a checkpoint.
There are other alternatives. For example we could add a check for a (new) checkpointing flag in a session handle down in the block manager.