Skip to Main Content
It is a challenge to design and implement a wide-area distributed hash table (DHT) which provides a storage service with high reliability. Many existing systems use replication to reach the goal of reliability. However, maintaining availability and consistency of the replicas becomes a major hurdle. A reliable storage system needs to recover lost and inconsistent replicas, but any recovery strategy will lead to extra workloads which affect the throughput of the system. This paper explores these problems and provides a possible solution. We argue that our approach not only keeps eventual consistency of replicas but also quickens the spread of updates. We use an adaptive recovery strategy to guarantee the reliability of replicas as well as bandwidth saving. With a simulation result better than epidemic algorithms, we have also implemented and deployed a DHT system using strategies mentioned in this paper, and integrated it into Granary - a storage system distributed in 20 servers in 5 cities. Granary and the DHT system have run over half a year and provide a reliable storage service to several hundred users.