Fault-Tolerant Streaming Computation with BlockMon
Distributed snapshots: determining global states of distributed systems