我遵循此great blog。在此博客中,作者绘制了所有类型的隔离和一致性及其之间的关系的完整图片。
但是基于Google's blog,还有另一种称为External Consistency
的一致性,由Google的Spanner数据库提供。据我了解:
External consistency = Strongly Consistency + Strict Serializable
经过一些研究,外部一致性的定义可能是:
对于任何两笔交易,𝑇1和𝑇2(即使位于交易的相对两端,地球):如果𝑇1完成提交后𝑇2开始提交,然后𝑇2的时间戳大于𝑇1的时间戳。
我仍然看不到External consistency
和Strict Serializability
之间的区别。请举一个满足Strict Serializability
但不满足External Consistency
的示例。
谢谢
是的,严格的可序列化性和外部一致性几乎相同。据我了解,从严格的可序列化能力中看不出来的具有外部一致性的保证是,强快照读取将遵循严格的可序列化性,并且即使没有锁也将观察所有先前提交的事务。