> > The only idea I have come up with is to move all buffer write operations
> > into a background writer process, which could easily keep track of
> > every file it's written into since the last checkpoint.
>
> I fear this approach. It seems to limit a lot of design flexibility later. But
> I can't come up with any concrete way it limits things so perhaps that
> instinct is just fud.
A lot of modern disk subsystems can only be saturated with more then one parallel
IO request. So it would at least need a tuneable number of parallel writer processes,
or one writer that uses AIO to dump all outstanding IO requests out at once.
(Optimal would be all, in reality it would need to be batched into groups of
n pages, since most systems have a max aio request queue size, e.g. 8192).
Andreas