Fault tolerance in finite state machines using fusion
ICDCN'08 Proceedings of the 9th international conference on Distributed computing and networking
Implementing fault-tolerant services using state machines: beyond replication
DISC'10 Proceedings of the 24th international conference on Distributed computing
Hi-index | 0.00 |
We introduce the concept of fusible data structures to maintain fault-tolerant data in distributed programs. Given a fusible data structure, it is possible to combine a set of such structures into a single fused structure, that is smaller than the combined size of the original structures. When any of the original data structures is updated, the fused structure can be updated incrementally using local information about the update and does not need to be entirely recomputed. In case of a failure, the fused structure, along with the correct original data structures, can be used to efficiently reconstruct the failed structure. We show that many commonly used data structures like arrays, hash tables, stacks and queues are fusible and we present algorithms to fuse and recover such structures. This approach often requires significantly less space than conventional backups by replication and still allows efficient operations on the original data structures. For example, our experiments on a distributed system suggests that for a system with k servers, this approach requires k times less space than replication based techniques.