2 terminology isolation-level consistency
“可序列化”意味着对于任何给定的并发事务集,这些事务的串行排序会产生相同的结果。
他们还举了一个例子
假设您有一个初始值为 10 的属性;你有两笔交易——一笔使价值翻倍,另一笔增加了七笔。两个不同的客户端发起两个事务。在孤立语义下,该属性唯一可接受的值是 27(先加倍后加 7 的结果)和 34(先加 7 后加倍的结果)。任何其他值(例如 20 或 17)都将是错误的。
在示例中我们有哪个“相同的结果”?我们必须进行哪些重新排序才能产生相同的结果?
在示例中我们有哪个“相同的结果”?我们必须进行哪些重新排序才能产生相同的结果?
开头引用是对可序列化隔离的错误陈述。
SQL-92 标准中可序列化隔离级别的定义包含以下文本(重点是我的):
可串行化执行被定义为同时执行 SQL 事务的操作的执行,其产生与那些相同 SQL 事务的某些串行执行相同的效果。串行执行是每个 SQL 事务在下一个 SQL 事务开始之前执行完成。
给出的例子与该定义一致。
上面的文字摘自我的文章The Serializable Isolation Level
归档时间: |
|
查看次数: |
75 次 |
最近记录: |