2 System models and order and time
This chapter covers
- Synchronous and asynchronous systems
- Component and network behavior
- Order, physical time, and logical time
Thinking in distributed systems requires thinking in system models, such as synchronous and asynchronous system models, and also the concepts of order, physical time, and logical time. 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 is a set of assumptions, known as the system model, about the system's set of 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
|
Why are system models crucial for our discussions? Algorithms and protocols that are correct under one system model may not be correct under another system model—any deviation may render an algorithm or a protocol incorrect.