mongodb4.0 transaction WriteConflict 写冲突问题

panshir
  • 1k

配置

  1. 使用mongo4.0副本集三台
  2. 开启使用事务进行数据修改和提交
  3. 存在并发修改同一个文档的情况

代码逻辑

  1. 开启第一个事务 trans1 = mongSession1.startTransaction()
  2. trans1.update({a:a},{"$inc":{"num":1}})
  3. 开启第二个事务 trans2 = mongSession2.startTransaction()
  4. trans2.update({a:a},{"$inc":{"num":1}}),这时会出现WriteConflict 写冲突

如果1,2 之后把sess1进行commit或者abort就不会出现问题
因为是并发修改操作,没法确定先创建transaction的就一定先结束
这种问题怎么解啊。
与readConcern 和 writeConcern有关系么,我各种设置都不行啊,local,Majority,Snapshot w:1等都试过了。

回复
阅读 4.7k
4 个回答

您好,请问解决问题了吗

宣传栏