This chapter covers
- Synchronous and asynchronous systems
- Component and network behavior
- Order, physical time, and logical time
Thinking about distributed systems requires thinking about system models, such as synchronous and asynchronous system models, and also the concepts of order, physical time, and logical time. Consider this contrast: in a synchronous system with timing guarantees, if a message does not arrive within a known bound, we know that a failure has occurred. In an asynchronous system with no timing guarantees, if a message does not arrive, we know nothing. A failure may have occurred, or the message may be delayed. Our goal in this chapter is to understand the state of affairs or forces at play that determine and constrain the behavior of distributed systems.
2.1 System models
We can’t reasonably talk about a distributed algorithm or protocol without talking about the assumptions we made about the underlying distributed system. This set of assumptions, known as the system model, is about the system’s components, its network, and its timing behavior (see table 2.1).
Table 2.1 Examples of assumptions about the system
One system model |
Another system model |
Components may not fail. |
Components may fail. |
Messages may not get lost. |
Messages may get lost. |
Clocks are perfectly synchronized. |
Clocks are not perfectly synchronized. |