Patch included to implement xlog switching, using an xlog record
"processing instruction" and forcibly moving xlog pointers.
1. Happens automatically on pg_stop_backup()
2. Can happen manually via pg_switch_xlog()
3. Implement range of utility functions:
pg_current_wal_offset()
pg_current_xlogfile()
pg_current_xlogfile_offset() - for Hannu
pg_xlogfile_from_wal_offset() for interpreting output from
pg_switch_xlog, pg_start/stop_backup()
Passes make check, applies cleanly to HEAD, includes doc patches with
clean SGML builds.
Design as clean as possible given and has implementation of
archive_timeout in mind also. Happy to work further on any code cleanups
requested.
I've done a variety of testing on it, doing concurrent pg_regress and
pg_switch_xlog(). All known issues resolved. Main test cases and sample
outputs are in switchtest.sh
Wide variety of cases need testing, so I'm expecting some further issues
to be reported.
I'm now working on completing the restartable recovery patch, which will
include further tests of PITR recoveries on the xswitch.patch.
--
Simon Riggs
EnterpriseDB http://www.enterprisedb.com