Различия между строгой сериализуемостью и внешней согласованностью - PullRequest
5 голосов
/ 23 февраля 2020

Я подписан на этот отличный блог . В этом блоге автор нарисовал полную картину всех типов изоляции и согласованности и отношений между ними. enter image description here

Но на основе блога Google существует еще один тип согласованности, названный External Consistency, который предоставляется базой данных Google Spanner. Как я понял:

External consistency = Strongly Consistency + Strict Serializable

После некоторого исследования определение внешней согласованности может быть:

Для любых двух транзакций, ?1 и ?2 (даже если на противоположных сторонах глобус): если ?2 начинает фиксироваться после того, как ?1 заканчивает фиксацию, тогда временная метка для ?2 больше, чем временная метка для .1.

Я все еще не вижу различий между External consistency и Strict Serializability. Пожалуйста, приведите пример, который удовлетворяет Strict Serializability, но не External Consistency.

Спасибо

Ответы [ 2 ]

0 голосов
/ 26 февраля 2020

Строгая сериализуемость говорит, что поведение транзакции эквивалентно некоторому последовательному выполнению, а последовательный порядок транзакций соответствует реальному времени (т. Е. Транзакция, запущенная после завершения другой, будет заказана после этого). Обратите внимание, что строгая сериализуемость (например, линеаризуемость) по-прежнему ничего не говорит об относительном упорядочении параллельных транзакций (но, конечно, эти транзакции все еще должны казаться «изолированными» друг от друга).

Для Насколько я понимаю, Google Spanner использует термин внешняя согласованность вместо строгая сериализуемость , поскольку он подчеркивает разницу между системой, которая обеспечивает согласованность для транзакции, о которых известно, что база данных имеет причинно-следственную связь, и системы, которые не пытаются вывести причинно-следственную связь и предлагают более надежные гарантии.

0 голосов
/ 24 февраля 2020

Вы правы, строгая сериализуемость и внешняя согласованность практически одинаковы. Насколько я понимаю, единственная гарантия с внешней согласованностью, которая не очевидна из строгой сериализуемости, заключается в том, что строгое чтение снимка будет следовать строгой сериализуемости и будет наблюдать все ранее зафиксированные транзакции, даже если оно не блокируется.

...