This preview shows page 1. Sign up to view the full content.
Unformatted text preview: ore, admitting a faster implementation, although at the cost of making the system more complex to reason about for the programmer. (Question for the audience: is it possible for causal order to differ from serializability? They don’t differ for the case we started with at the beginning.) CPU1: write a value CPU2: write a value (a bit later) (synchronize CPU3 and CPU4 to ensure the following comes after both writes complete) CPU3: read value CPU4: read value What value does CPU3 and CPU 4 read? With single copy/linearizability, CPU3 and CPU4 read the same value, the value written by CPU2. With sequential consistency/serializability, we need to make sure that if there are two writes by the same CPU, they appear to other CPUs in order, but it allows CPU1 and CPU2’s writes to be in any order, provided every CPU sees them in the same order. So CPU3 and CPU4 can see either CPU1’s write or CPU2’s write, but both will see the same one. With causal ordering, it would be possible for CPU3 to see the writes as CPU1 then CPU2, while CPU4 can see them in the other order, CPU2 then CPU1. This is not sequentially consistent – not consistent with some sequential order of operat...
View Full Document
- Spring '14