When then might have caused
We say event happens before event () iff:
- and occurred at the same node, and occurred before in that node’s local execution order
- is the sending of some message and is the receipt of that same message (assuming sent messages are unique)
- there exists some such that and
When then cannot have caused (and vice versa)
Concurrent does not mean simultaneous, it means two things did not know about each other when they occurred (a is concurrent with b is written as )
is a causal order, it is consistent with causality, a strict total order on events. Usually called the ‘happens-before’ relation
See also: Order theory
In Einstein’s theory of general and special relativity
Causality means that an effect can not occur from a cause that is not in the back (past) light cone of that event. Similarly, a cause can not have an effect outside its front (future) light cone.
This causes us to be trapped in causal islands. Because data can only travel at the speed of light, we can’t keep up with each other all the time.
The normal solution is to work in parts (Spanner does this) where the light cones of the different sites intersect. However, only working in this case called causal subjectiity.