请教一下 PostgreSQL 中的 serialization anomaly 是什么意思

2021-02-08 13:56:32 +08:00
 zxCoder

谷歌也没查到太多相关的

文档的定义是

The result of successfully committing a group of transactions is inconsistent with all possible orderings of running those transactions one at a time.

翻译过来我还是不太能理解,

成功提交一组事务的结果 和 以所有可能的顺序去依次提交这些事务的结果 不一致?

这是什么意思?

提交一组事务(committing a group of transactions)难道不也是一个一个提交的吗?

762 次点击
所在节点    问与答
2 条回复
sfqtsh
2021-02-08 16:52:27 +08:00
你看下,
http://wiki.postgresql.org/wiki/SSI
里面提到有很多例子,再结合博客园里的一篇
https://www.cnblogs.com/ivan-uno/p/8274355.html

"anomaly" 就是指类似 write skew 这种现象的发生。像 write skew,如果是真正的时间上的串行化来先后执行的话(不管谁先谁后),它是不可能发生的 (你看两个链接里都提到的改颜色例子)。

你既然问的是事务隔离级别相关,"一组事务"肯定说的 concurrent 事务了,出于效率,可串行化隔离级别的[实现]又不是真的"一个个先后执行"。
zxCoder
2021-02-08 19:11:10 +08:00
@sfqtsh 谢谢 我再理解一下

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/752333

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX