Library / Computational Thinking DPF
Jump to passage
In this reading

Link to current text

Published source confirmed at last check

Source changed 2026-10-03 02:22:15 UTC · snapshot created 2026-10-03 03:38:22 UTC · last check 2026-10-03 04:45:20 UTC

CMP.14:4.4 - Change the interaction that causes the failure

Construct a repair from the failed premise. Common choices have different costs:

Exposed difficultyConstructive choiceCost or condition to retain
An intervening write invalidates a readUse an atomic update, or validate the observed version and retry.The primitive must cover the relevant state; retries have a progress cost.
Intermediate state is observed inconsistentlySerialize the affected operation, protect its critical region or publish an immutable result.Waiting, ownership or retained copies replace the former interference.
A repeated message repeats an effectIdentify the logical request and combine effect application with remembering its result.Identifier lifetime and failure recovery must preserve the relation.
Components wait in a resource cycleImpose a shared acquisition order or another cycle-breaking protocol.All participating acquisitions must follow the rule; starvation remains a separate question.
Coordination costs more than the required consistency is worthChange the result specification to a weaker observation the receiver can use.Revalidate the receiving algorithm under that weaker result.

Execute the original failing trace against the repair, then inspect the transition family that caused it. This both explains the changed behavior and identifies what a more general argument must cover.