在CommitTransaction期间发生WriteConflict

时间:2019-05-24 05:12:19

标签: mongodb go

2019-05-13T19:01:30.473+0700 I COMMAND  [conn10179] command admin.$cmd appName: "XXX" command: commitTransaction { commitTransaction: 1, lsid: { id: UUID("4d66cc5b-70ff-4f08-9eae-d281b87b59c4") }, txnNumber: 61576, autocommit: false, $db: "admin" } numYields:0 ok:0 errMsg:"WriteConflict" errName:WriteConflict errCode:112 reslen:153 locks:{ Global: {acquireCount: { r: 1, w: 1 } }, Database: { acquireCount: { w: 2 } }, Collection: { acquireCount: { w: 2 } } } protocol:op_msg 0ms

在负载测试期间,我在提交事务中发现“ WriteConflict”错误。 伪代码大致如下:

  • 创建会话
  • 开始交易
  • 插入
  • 通过rest API发布数据
  • 如果成功,则提交事务,否则中止

语言:golang

Mongo驱动程序:go.mongodb.org/mongo-driver v1.0.0

我想知道

  1. 为什么提交事务期间确实发生 WriteConflict 。我每笔交易只插入一个文件(新)。 IMOP文档无法锁定。为什么使用WriteConflict?

  2. 如何修复?

0 个答案:

没有答案