Fault-Tolerant Distributed Directories
A distributed directory is an overlay data structure on a graph G that helps to access a shared token t. The directory supports three operations: publish, to announce the token, lookup, to read the contents of the token, and move, to get exclusive update access to the token. The directory is built upon a hierarchical partition of the graph using either weak or strong clusters. The main mechanism is the maintenance of a directory path that starts at the root node in the hierarchy and points to the current owner of the token. In the literature, there are known directory algorithms based on hierarchical graph structures, but none of them have considered failures. Given a hierarchical partition, we consider the impact of f edge failures on the functionality and performance of the distributed directory. The edge failures may result in the splitting of clusters into up to f+1 connected components. To recover the hierarchical partition after failures, we maintain spanning trees in the clusters and their connected components. If G remains connected, we show that the directory path length is dilated by only a factor f. We also show that the performance of the directory operations is affected in the worst case by a factor f with respect to the message complexity.
READ FULL TEXT