Improvements to a roll-back mechanism for asynchronous checkpointing and recovery