Replay, recovery, replication, and snapshots of nondeterministic concurrent programsHaim GaifmanMichael J. Makeret al.1991PODC 1991