Self-stabilizing Resource Discovery Algorithm
Massive distributed cooperative computing in networks involves marshaling large collections of network nodes possessing the necessary computational resources. In order for the willing nodes to act in a concerted way they must first discover one another. This is the general setting of the Resource Discovery Problem (RDP). There are solutions for this problem that achieve impressive efficiency in the absence of failures, however, their correctness and performance cannot be guaranteed in the presence of failures. In practical environments it is important to have solutions that can cope with intermittent failures, and, in particular to design self-stabilizing algorithms for the problem. This paper presents a self-stabilizing algorithm that solves RDP in a deterministic synchronous setting. The approach is formulated in terms of evolving knowledge graphs, where vertices represent the participating network nodes, and edges represent one node’s knowledge about another. Ideally, the diameter of such a graph is one, i.e., each node knows all others. The algorithm works in rounds as it evolves the knowledge graph by nodes sharing knowledge through gossip messages with the goal of reducing its diameter. We prove that the algorithm is self-stabilizing, that is, the algorithm is able to tolerate arbitrary perturbations in the nodes’ local states and is guaranteed to solve the problem once such failures subside. We show that the algorithm has stabilization time of O(logD), and it takes at most 2logD + 10 complete round to stabilize, where D is the diameter of the initial knowledge graph. The corresponding message complexity is O(|V|2·logD), where V is the set of participating nodes.
KeywordsResource Discovery Self-Stabilization Distributed Algorithm
Unable to display preview. Download preview PDF.
- 1.Abraham, I., Dolev, D.: Asynchronous resource discovery. In: Proceedings of the 22nd ACM Symposium on Principles of Distributed Computing, pp. 143–150 (2003)Google Scholar
- 3.Davtyan, S., Konwar, K., Shvartsman, A.A.: Brief announcement: Self-stabilizing resource discovery algorithm. In: Proceedings of the ACM Symposium on Principles of Distributed Computing (2013)Google Scholar
- 4.Dijkstra, E.W.: Self-stabilizing systems in spite of distributed control. Communications of the ACM 17(11) (1974)Google Scholar
- 5.Dijkstra, E.W.: A belated proof of self-stabilization. Distributed Computing 1(1) (1986)Google Scholar
- 6.Dolev, S., Herman, T.: Superstabilizing protocols for dynamic distributed systems. Chicago Journal of Theoretical Computer Science (1997)Google Scholar
- 7.Harchol-Balter, M., Leighton, F.T., Lewin, D.: Resource discovery in distributed networks. In: Proceedings of the 18th Symposium on Principles of Distributed Computing, pp. 229–237 (1999)Google Scholar
- 8.Kaynar, D., Lynch, N., Segala, R., Vaandrager, F.: The theory of timed i/o automata, 2nd edn. Morgan & Claypool (2011)Google Scholar
- 10.Konwar, K., Kowalski, D.R., Shvartsman, A.A.: The join problem in dynamic network algorithms. In: Proceedings of the International Conference on Dependable Systems and Networks, pp. 315–324 (2004)Google Scholar
- 11.Kutten, S., Peleg, D.: Asynchronous resource discovery in peer to peer networks. In: Proceedings of the 21st IEEE Symposium on Reliable Distributed Systems (SRDS 2002), pp. 224–231 (2002)Google Scholar
- 12.Kutten, S., Peleg, D., Vishkin, U.: Deterministic resource discovery in distributed networks. In: Proceedings of the 13th ACM Symposium on Parallel Algorithms and Architectures, pp. 77–83 (2001)Google Scholar
- 13.Law, C., Siu, K.-Y.: An o(logn) randomized resource discovery algorithm. In: Brief Announcements of the 14th International Symposium on Distributed Computing, Technical Report FIM/110.1/DLSIIS/2000, Technical University of Madrid, pp. 5–8 (2000)Google Scholar
- 15.Tel, G.: Distributed algorithms. Cambridge University Press (2000)Google Scholar