On 11-10-11 11:17 AM, Jun Ishiduka wrote: > Done. > > Updated patch attached. >
I have taken Jun's latest patch and applied it on top of Fujii's most recent patch. I did some testing with the result but nothing theory enough to stumble on any race conditions. Some testing notes ------------------------------ select pg_start_backup('x'); ERROR: full_page_writes on master is set invalid at least once since latest checkpoint I think this error should be rewritten as ERROR: full_page_writes on master has been off at some point since latest checkpoint We should be using 'off' instead of 'invalid' since that is what is what the user sets it to. I switched full_page_writes=on , on the master did a pg_start_backup() on the slave1. Then I switched full_page_writes=off on the master, did a reload + checkpoint. I was able to then do my backup of slave1, copy the control file, and pg_stop_backup(). When I did the test slave2 started okay, but is this safe? Do we need a warning from pg_stop_backup() that is printed if it is detected that full_page_writes was turned off on the master during the backup period? Code Notes --------------------- *** 6865,6870 **** --- 6871,6886 ---- /* Pre-scan prepared transactions to find out the range of XIDs present */ oldestActiveXID = PrescanPreparedTransactions(NULL, NULL); + /* + * The startup updates FPW in shaerd-memory after REDO. However, it must + * perform before writing the WAL of the CHECKPOINT. The reason is that + * it uses a value of fpw in shared-memory when it writes a WAL of its + * CHECKPOTNT. + */ Minor typo above at 'CHECKPOTNT' If my concern about full page writes being switched to off in the middle of a backup is unfounded then I think this patch is ready for a committer. They can clean the two editorial changes when they apply the patches. If do_pg_stop_backup is going to need some logic to recheck the full page write status then an updated patch is required. > Regards. > > -------------------------------------------- > Jun Ishizuka > NTT Software Corporation > TEL:045-317-7018 > E-Mail: ishizuka....@po.ntts.co.jp > -------------------------------------------- > > >