The attached is a revised patch for smoothing checkpoints. The added 3 GUC
parameters can be used to control sleeps in each stage during checkpoints.
The another is an approach to replace fsync() for fine control.
1. checkpoint_write_duration (default=0, in seconds)
Sets the duration of write() phase in checkpoints.
2. checkpoint_nap_duration (default=0, in seconds)
Sets the duration between write() and fsync() phases in checkpoints.
3. checkpoint_sync_duration (default=0, in seconds)
Sets the duration of fsync() phase in checkpoints.
4. checkpoint_sync_size (default=0, in KB)
Sets the synchronization unit of data files in checkpoints.
I'll send the detail to -hackers.
Any comments and testing reports will be appreciated.
> This is a patch for load distributed checkpoint discussed in
> http://archives.postgresql.org/pgsql-hackers/2006-12/msg00337.php
>
> Only write() calls are smoothed, fsync() are not.
> Existing checkpoint method is called "immediate checkpoint" in the patch,
> and the new method called "asynchronous checkpoint".
Regards,
---
ITAGAKI Takahiro
NTT Open Source Software Center