diff --git a/discussion/fairness/fairness-on-controller-race.md b/discussion/fairness/fairness-on-controller-race.md index fe6f46be..fa0c18e5 100644 --- a/discussion/fairness/fairness-on-controller-race.md +++ b/discussion/fairness/fairness-on-controller-race.md @@ -53,4 +53,4 @@ write(..., v2) // err ``` where every time between $C$'s `read` and `write`, some controller from $S$ successfully writes the object, making the version number read by $C$ no longer fresh. In this execution, $C$ runs fairly but it will never successfully writes the object. -Note that this example is realistic. In practice, Kubernetes controllers share objects in this same --- they update different parts of the object while racing with each other. This usually doesn't block any controller's progress indefinitely, because (1) there is usually a long time window between each controller's successful `write` and its next `write`, (2) if a controller's `write` fails, it can aggressively retry `read; if P { write; }`, and (3) there aren't too many controllers sharing the same object at the same time. \ No newline at end of file +Note that this example is realistic. In practice, Kubernetes controllers share objects in this way --- they update different parts of the object while racing with each other. This usually doesn't block any controller's progress indefinitely, because (1) there is usually a long time window between each controller's successful `write` and its next `write`, (2) if a controller's `write` fails, it can aggressively retry `read; if P { write; }`, and (3) there aren't too many controllers sharing the same object at the same time. \ No newline at end of file