我无法理解可序列化的定义

2 terminology isolation-level consistency

大家都这么

“可序列化”意味着对于任何给定的并发事务集,这些事务的串行排序会产生相同的结果。

他们还举了一个例子

假设您有一个初始值为 10 的属性;你有两笔交易——一笔使价值翻倍,另一笔增加了七笔。两个不同的客户端发起两个事务。在孤立语义下,该属性唯一可接受的值是 27(先加倍后加 7 的结果)和 34(先加 7 后加倍的结果)。任何其他值(例如 20 或 17)都将是错误的。

在示例中我们有哪个“相同的结果”?我们必须进行哪些重新排序才能产生相同的结果?

Pau*_*ite 7

在示例中我们有哪个“相同的结果”?我们必须进行哪些重新排序才能产生相同的结果?

开头引用是对可序列化隔离的错误陈述。

SQL-92 标准中可序列化隔离级别的定义包含以下文本(重点是我的):

可串行化执行被定义为同时执行 SQL 事务的操作的执行,其产生那些相同 SQL 事务的某些串行执行相同的效果。串行执行是每个 SQL 事务在下一个 SQL 事务开始之前执行完成。

给出的例子与该定义一致。

上面的文字摘自我的文章The Serializable Isolation Level