MongoDB Manual (Version 4.2)> Transactions > Production Considerations (Sharded Clusters)
- 分片事务及MongoDB驱动
- 性能
- Read Concerns读关注
- Write Concerns写关注
- 仲裁者
- 三成员 主-从-仲裁 分片
- 备份回档
- 块迁移
- 提交期间的读请求
- 与副本索引的交互
- 其他信息
分片事务及MongoDB驱动
对于MongoDB 4.2部署(副本集和分片群集)上的事务,客户必须使用为MongoDB 4.2更新的MongoDB驱动程序。
在具有多个mongos实例的分片群集上,用MongoDB 4.0(而非MongoDB 4.2)执行事务更将会失败并可能导致错误,包括: 注意 您的驱动程序可能会返回其他错误。有关详细信息,请参阅驱动程序的文档。Error Code / 错误码 | Error Message / 错误信息 |
---|---|
251 | cannot continue txnId -1 for session ... with txnId 1 |
50940 | cannot commit with no participants |
性能
单分片
针对单个分片的事务应具有与副本集事务相同的性能。
多分片
影响多个分片的事务会产生更高的性能成本。
注意
在分片群集上,如果任何涉及的分片包含仲裁者,那么跨越多个分片的事务将出错并中止。
时间限制
要指定时间限制,请在commitTransaction上指定maxTimeMS限制。
如果未指定maxTimeMS,则MongoDB将使用transactionLifetimeLimitSeconds。 如果指定maxTimeMS,但会导致事务超过transactionLifetimeLimitSeconds,则MongoDB将使用transactionLifetimeLimitSeconds。 要为分片群集修改transactionLifetimeLimitSeconds,必须为所有分片副本集成员修改参数。