MongoDB事务内执行find是否可见同事务中刚插入的文档?
MongoDB事务内读可见性问题解答
问题涉及的操作序列
- 启动一个session
- 为该session开启事务
- 执行
insert命令插入一条新文档 - 对刚插入文档的集合执行
find命令 - 提交事务
- 结束session
结论
第四步执行的find可以看到这条新插入的文档
规则说明
MongoDB的事务可见性逻辑分两种场景:
- 同会话同事务内部:事务内的写入操作对本事务后续的所有读操作立即可见,不需要等待事务提交,这是事务默认的基础行为
- 事务外部:未提交的事务写入对其他会话、其他事务完全不可见,也就是你已知的规则,和事务内的可见性逻辑不冲突
只有手动修改事务读关注为特殊非默认配置时才会出现例外,默认配置下不会触发该类情况。
内容的提问来源于stack exchange,提问作者Carlos Granados
相关产品推荐
相关产品推荐

