Fault tolerant parallel and distributed systems (Kluwer, 1998)