Substituting for real time and common knowledge in asynchronous distributed systems
PODC '87 Proceedings of the sixth annual ACM Symposium on Principles of distributed computing
Recent issues in reasoning about knowledge
TARK '90 Proceedings of the 3rd conference on Theoretical aspects of reasoning about knowledge
Knowledge consistency: a useful suspension of disbelief
TARK '88 Proceedings of the 2nd conference on Theoretical aspects of reasoning about knowledge
Hi-index | 0.00 |
This work applies the theory of knowledge in distributed systems to the design of efficient fault-tolerant protocols. We define a large class of problems requiring coordinated, simultaneous action in synchronous systems, and give a method of transforming specifications of such problems into protocols that are optimal in all runs: for every possible input to the system and faulty processor behavior, these protocols are guaranteed to perform the simultaneous actions as soon as any other protocol could possibly perform them. This transformation is performed in two steps. In the first step, we extract directly from the problem specification a high-level protocol programmed using explicit tests for common knowledge. In the second step, we carefully analyze when facts become common knowledge, thereby providing a method of efficiently implementing these protocols in many variants of the omissions failure model. In the generalized omissions model, however, our analysis shows that testing for common knowledge is NP-hard. Given the close correspondence between common knowledge and simultaneous actions, we are able to show that no optimal protocol for any such problem can be computationally efficient in this model. The analysis in this paper exposes many subtle differences between the failure models, including the precise point at which this gap in complexity occurs.