A range of WAL/PITR items still need work. I'm fairly sure I won't be
doing any of these in time for 8.1, so feel free to have a go.
1. PITR archive recovery could do more to overlap recovery of files, so
that recovery overall is faster. This is already possible by designing
your archive command to perform this buffering for you, but it may be a
good idea to build this directly into the recovery scheme.
2. PreallocXlogFiles to run from a separate process to make it
effective, as discussed last year. The most natural place to put it
would be the Archiver, though that is only present when archive_command
is set. That means we could have the bgwriter execute it every so often,
perhaps every 5 or 10 cycles to avoid lock contention.
3. If PreallocXlogFiles becomes effective, it should be possible to turn
a pg_xlog directory out of space PANIC into a checkpoint to recycle
outstanding WAL files, then retry the prealloc. If that helps then reset
checkpoint_segments (and issue a WARNING to say it has happened) so that
the out of space condition is not encountered again.
4. CRC reduction to CRC-32, plus hardware tuning. I'll stay in touch
with that in case we have further information to tune the assembler.
5. WAL archive compression
6. xlog.c refactoring into two pieces: WAL writing and WAL recovery
Best Regards, Simon Riggs