mongo 记录-1(多文档事务)

4.0已经支持多文档事务

当事务提交时,事务中所做的所有数据更改都将保存并在事务外部可见。
在事务提交之前,事务中的数据更改在事务外部不可见。

当事务中止时,事务中所做的所有数据更改都将被丢弃而不会变得可见。
例如,如果事务中的任何操作失败,则事务将中止,并且事务中所做的所有数据更改都将被丢弃而不会变得可见。

存储引擎

多文档事务仅适用于使用WiredTiger存储引擎的部署
多文档事务不适用于使用内存存储引擎或弃用的MMAPv1存储引擎的部署。

事务和操作

你可以在现有集合上指定读/写(CRUD)操作.集合可以位于不同的数据库中。
你无法读取/写入config,admin或者local数据库中的集合。
你不能写入system.* 集合
你无法返回支持的操作的查询计划(如explain)
对于在事务之外创建的游标,你无法在事务中调用getMore
对于在事务中创建的游标,您不能在事务外调用getMore

限制

影响数据库目录的操作,例如创建或删除集合或索引。
例如,多文档事务不能包含将导致创建新集合的插入操作。
listCollections和listIndexes命令及其辅助方法也被排除在外。

非CRUD和非信息操作,例如createUser,getParameter,count等,以及它们的帮助程序。

mongoshell

Session.startTransaction()
Session.commitTransaction()
Session.abortTransaction()

事务和重试

无论retryWrites是否设置为true,事务内的各个写入操作都不可重试

如果操作失败会获得error,错误中包裹 errorLabels,如果errorLabels是TransientTransactionError,那就可以重试整个事务

提交操作是可重试的写操作,如果errorLabels是UnknownTransactionCommitResult,那就重试提交操作

read concern 和write concern

local

具有read concern local的查询从实例返回数据,而不保证数据已被写入大多数副本集成员(如回滚)。

majority

对于与多文档事务无关的读取操作,read concern majority 保证数据读取已被大多数副本集成员确认(如 读取的文档是持久的并且保证不回滚)。

但是,对于多文档事务中的操作,只有当事务以write concern majority 提交时,read concern majority 才提供其保证。否则,read concern majority 不能保证事务中读取的数据。

snapshot

read concern snapshot仅适用于多文档事务。
如果事务不是因果一致会话的一部分,则在write concern majority的事务提交时,事务操作保证从多数提交数据的快照读取

如果事务是因果一致会话的一部分,则在write concern majority的事务提交时,事务操作保证从多数提交数据的快照读取,该快照提供与事务开始之前的操作的因果一致性。

你可以在事务开始前指定concern
如果在事务开始时未指定,则事务使用会话级读取问题,或者,如果未设置,则使用客户端级读取问题。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,315评论 2 89
  • MySQL技术内幕:InnoDB存储引擎(第2版) 姜承尧 第1章 MySQL体系结构和存储引擎 >> 在上述例子...
    沉默剑士阅读 7,655评论 0 16
  • 沿海贸易富, 台风常光顾。 世上无完美, 少祸多降福。 祸福由天定, 谁人能左右? 避之万事吉, 但愿命长久。 山...
    彭甫阅读 399评论 3 6
  • 记录:昨天姑娘病恹恹一整天,一会儿哭一次,一会儿哭一次,真的好焦急而又无奈,自己一堆事情,她总让我抱,我很不耐烦;...
    cdd2f75330c6阅读 328评论 0 0
  • 去年,我在朋友圈就看到过21天写作训练营,当时没有报名的原因是怕自身三分钟热度,坚持不下来,因为当时已参加了类似的...
    晶雅阅读 175评论 0 1

友情链接更多精彩内容