Skip to Main Content
Proposes a framework for the systematic design of directory-based distributed applications. We evaluate a space of directory designs using our framework. We present a case study consisting of design, implementation and analysis of directories for a multicast application. Our framework is based on a model that extends the formal concept of process knowledge in distributed systems. This concept is used informally in phrases such as "process p knows when it is in state s that process q is active". We show that this definition of knowledge is too strong for many distributed applications, including directory design. We propose a weaker concept: estimation. We describe the meaning of phrases of the form: "process p in state s estimates with probability 0.9 that process q is active". We specify directory design as an optimization problem with the objective function of maximizing estimation probabilities, and with constraints on the amount of bandwidth, computation and storage used. We show how this specification helps in a systematic analysts of alternative directory designs.