Happens-Before relation (Lamport 1978): partial order on events in distributed systems. Three processes A, B, C with intra-process program-order edges and a cross-process send/receive message from A2 to B2. Demonstrates causal chain via transitivity, concurrent events without communication, and the pitfall of using wall-clock timestamps.
Happens-before is the smallest transitive relation containing program order inside each process and every message send before its matching receive. It describes potential causal influence, not wall-clock order, network arrival order, or immediate global visibility.
If neither a -> b nor b -> a, the events are concurrent in the causal model. That means incomparable, not necessarily simultaneous. Enforcing causal delivery additionally requires metadata, buffering, retransmission, and bounded gap handling.
a -> b follows from same-process order, a send before its matching receive, or transitive closure.a -> b => L(a) < L(b), but the converse is false.(clock, process-id) tie-break is a total-order extension for presentation, not new causality.local-order): Two sequential events in one process are ordered without a message.message-edge): Transport delay does not erase the causal send-to-receive edge.transitive-chain): Receive, local work, and a new send compose one causal path.concurrent-events): Independent events have no path in either direction even if displayed in an order.scalar-converse): Ordered scalar values do not prove ancestry.delayed-dependency): A dependent effect is withheld until its missing predecessor arrives.retry-duplicate): Causal order can be correct while a repeated business effect is wrong.Введите числа или выберите пресет