Distributed programs are difficult to design and test due to their non-deterministic nature. That is, a distributed program may exhibit multiple behaviors on the same external input. This non-determinism is caused by reordering of messages in different executions. It is sometimes desirable to control this non-determinism by restricting the possible message ordering in a system. The problem of restricting message ordering has received wide attention. In this chapter, we will discuss a strict hierarchy of message ordering — asynchronous, FIFO, causal, and synchronous ordering.
KeywordsReceive Condition Request Message Priority Rule Safety Property Time Diagram
Unable to display preview. Download preview PDF.