I'm currently studying distributed replicated systems and consistency models. I have hard time to relate consistency models to replicated systems, because most definition in the literature use shared registers or the shared memory model. The one notable exception I found is Tanenbaum, Andrew S., and Maarten Van Steen. Distributed systems. Prentice-Hall, 2007., which defines the models with the help of distributed stores:
Traditionally, consistency has been discussed in the context of read and write operations on shared data, available by means of (distributed) shared memory, a (distributed) shared database, or a (distributed) file system. In this section, we use the broader term data store. A data store may be physically distributed across multiple machines. The problem is that I have hard time to see the parallel between their definitions and definitions in other literature.
In my understanding, a consistency model is a constraint on the legal permutations of a shared store's history. The history contains operations from multiple processes and if we execute them in an order corresponding to the constraint then we end up in a consistent state (according to the model). But - and it's here where I'm a bit lost - what happens if our storage system is replicated?
Take Raft as an example. Raft is an algorithm to provide linearizability on the Leader
from the clients' point of view, and responsible to achieve consensus between all replicas on the log history. But according to Tannenbaum, replicas are permitted to have different histories as long as they are considered legal by the consistency model.
It seems to me that Raft provides something stricter than linearizability (which would allow to reorder concurrent operations). How do you call this consistency model? Can consensus be considered as a consistency model?
Am I right, that in the case of a distributed store who supports sequential consistency, every replica could arbitrarily reorder operations as long as it keeps every processes operations in their original order?