A replicação de dados é realizada para aumentar a disponibilidade e o desempenho de um sistema distribuído. No entanto, a replicação pode introduzir problemas de consistência, pois as cópias dos dados precisam ser mantidas consistentes. Sol. comum: relaxar restrições de consistência
DATA-CENTRIC CONSISTENCY MODELS: fornecem uma visão consistente do data store para todos os processos do sistema.
Consistência Sequencial: as operações de read e write em dados são percebidas como se tivessem ocorrido em uma ordem sequencial. Ordem das operações não importa, desde que a ordem seja a mesma em todos o processos. Não há referência ao tempo ou à operação de write mais recente; a mesma sequência em um P deve ser vista no outro P
Data store sequencialmente consistente: o resultado de qualquer execução é o mesmo como se as operações (read e write) sobre o data store, realizadas por todos os processos distribuídos, fossem executadas na mesma ordem por todos os processos igualmente.
Consistência Causal: versão mais fraca da consistência sequencial, que leva em consideração a causalidade entre eventos. Eventos que são potencialmente relacionados causalmente devem ser percebidos na mesma ordem por todos os processos. Operações concorrentes em dados não relacionados causalmente podem ser percebidas em ordens diferentes por diferentes processos.
Consistência vs. Coerência (Modelos)
CLIENT-CENTRIC CONSISTENCY MODELS: fornecem garantias para um único processo cliente em relação à consistência de acessos a um data store.
Monotonic Reads: operações sucessivas de reads seguirão a mesma ordem em que foram emitidas. Garante que, se um processo lê um valor de um item de dados x, qualquer leitura subsequente de x pelo mesmo processo sempre retornará o mesmo valor ou um valor mais recente. A operação de escrita em x por um processo é concluída antes de qualquer operação de escrita subsequente em x pelo mesmo processo.
Monotonic Writes: garante que a operação de escrita em um item de dados x por um processo é concluída antes de qualquer operação de escrita subsequente em x pelo mesmo processo.