1
$\begingroup$

How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs

... the result of any execution is the same as if the operations of all the processors were executed in some sequential order, and the operations of each individual processor appear in this sequence in the order specified by its program. A multiprocessor satisfying this condition will be called sequentially consistent.

Spanner docs:

Strong Consistency All accesses are seen by all parallel processes (or nodes, processors, etc.) in the same order (sequentially)5 In some definitions, a replication protocol exhibits "strong consistency" if the replicated objects are linearizable.

The 5 in that doc is a link to the wikipedia page, which apparently hasn't ever cited any sources. I can't seem to find any original source for it. The "some definitions" mentioned seem to be nowhere to find online.

What's the difference between strong and sequential consistency?

$\endgroup$
2
0
$\begingroup$

In the case of the Spanner doc: it appears to be more strict than linearizability due to transactions. The difference between linearizability and sequential consistency is that latter doesn't need to preserve the real time ordering of requests.

https://jepsen.io/consistency/models/linearizable

The combination of linearizability and transactions is called strict serializability:

https://jepsen.io/consistency/models/strict-serializable

I'm not sure if spanner is supporting strict serializability.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.