Consistência externa versus linearizabilidade

9

Em Spanner, TrueTime e The The Theemem CAP , Eric Brewer escreve:

Uma coisa sutil sobre o Spanner é que ele obtém serialização dos bloqueios, mas obtém consistência externa (semelhante à linearizabilidade ) do TrueTime [ ênfase adicionada ].

Qual é a definição de consistência externa e como ela difere da linearizabilidade ?

Lorin Hochstein
fonte

Respostas:

10

A consistência externa não tem um significado fixo. Nesse contexto, ele tem o significado que aparece na próxima frase do documento:

Para quaisquer duas operações, e T 2 (mesmo que em lados opostos do globo): se T 2 começa a cometer após T 1 acabamentos cometer, então o timestamp de T 2 é maior que o timestamp de T 1 .T1T2T2T1T2T1

Yuval Filmus
fonte
0

Você pode pensar na consistência externa do isolamento de transações (Tx) e no ponto de vista do pedido. Na fala do isolamento Tx, a consistência externa é equivalente ao isolamento serializável estrito, onde 'strict' é a parte da restrição em tempo real (como na linearizabilidade).

Isso novamente significa que, para um cliente do sistema, os efeitos colaterais de Tx observáveis ​​são equivalentes a um sistema, onde todos os Tx ocorrem isoladamente, sem qualquer simultaneidade, e onde suas ordens em tempo real, como vistas pelo cliente, são preservadas. Mais importante, esse mesmo pedido é visto por qualquer outro cliente não relacionado.

Leia mais sobre a distinção neste blog .

Oleg
fonte