mongodb - 并发事务的 maxTransactionLockRequestTimeoutMillis
问题描述
我试图更好地了解 MongoDB 事务的锁定获取行为。我有一个场景,两个并发事务尝试修改同一个文档。由于一个事务将首先获得文档上的写锁,因此第二个事务将遇到写冲突并失败。
我偶然发现了maxTransactionLockRequestTimeoutMillis
此处记录的设置:https ://docs.mongodb.com/manual/reference/parameters/#param.maxTransactionLockRequestTimeoutMillis它指出:
多文档事务应等待获取事务中操作所需的锁的最长时间(以毫秒为单位)。
但是,更改此值似乎不会对观察到的写入冲突行为产生影响。事务 2 似乎并没有等待锁被再次释放,而是在另一个事务持有锁时立即发生写冲突(除了事务之外的并发写入,它将阻塞并等待锁)。
我是否正确理解配置的时间maxTransactionLockRequestTimeoutMillis
不包括实际接收文档上的写锁定的行为,或者我的测试有什么问题?
解决方案
推荐阅读
- python - 有比 Selenium.title 更好的解决方案吗?
- react-native - 如何在我的 react-native 应用程序中使用我自己的代理和 tcp:// uri?
- angular - 找不到名称“srcElement”
- intellij-idea - Intellij:远程调试器未在断点处停止
- javascript - 订单更改时,Vue For-Loop 生成组件上的输入失去焦点
- python - 将其悬停在tkinter中时如何更改ttk按钮背景和前景
- powershell - 如何使用 PnP 更新修改者和创建者字段
- python-3.x - docplex 2.10.15x 的 TypeError
- java - GC 如何知道旧堆中的对象是否引用了年轻堆中的对象?
- visual-studio - 使用 Visual Studio 2019 进行 IIS Express 远程访问