BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

MongoDB宣布即将支持ACID事务

| 作者 薛命灯 关注 24 他的粉丝 发布于 2018年2月17日. 估计阅读时间: 2 分钟 | 如何结合区块链技术,帮助企业降本增效?让我们深度了解几个成功的案例。

2 月 16 日,大年初一,MongoDB 联合创始人以及 CTO Eliot Horowitz 在其官方博客上宣布 MongoDB 即将在 4.0 版本中支持跨文档事务,也就是说,MongoDB 即将成为唯一一款同时具备速度、灵活性和支持 ACID 事务特性的文档数据库。

MongoDB 的事务机制通过快照隔离提供了全局的数据一致性视图,并强制执行所有操作或不执行任何操作来实现数据完整性。

MongoDB 的事务与开发者所熟悉的关系型数据库的事务类似,它们具有相似的语法,比如完成一个事务需要多个语句(如 start_transaction 和 commit_transaction),这样给开发者带来的开发体验与之前是相似的。

MongoDB 加入跨文档事务支持并不会对不需要事务的操作造成任何性能上的影响。MongoDB 4.0 将于今年夏天发布,支持跨单个副本集的事务,而 MongoDB 4.2 将支持跨整个集群的事务。

文档模型将原先在关系型数据库中需要通过父子表来表示的相关数据组合在同一篇文档中,MongoDB 的单文档原子操作已经为大部分应用提供了事务语义。

而跨文档事务为开发者提供了更多的选择,他们因此可以更容易地解决更多问题,省掉了很多麻烦。开发人员完全可以信赖 MongoDB 4.0 的事务机制,从而更自由地进行数据建模。

即将到来的事务特性经过了多年的开发,最早是从 3 年前集成 WiredTiger 存储引擎开始的。这几年,MongoDB 几乎对服务器的每个部分都进行了深入改造,从存储层到副本共识协议,再到分片架构。

现在它已经可以提供良好的一致性和持久性保证,并引入了全局逻辑锁,重构了集群元数据管理机制等等。同时,MongoDB 还将这些增强特性通过 API 的方式暴露出来,客户端驱动器也可以使用这些 API。目前官方已经完成了 85% 与事务特性相关的工作,具体如下图所示:

要想深入了解跨文档事务特性,可以参考官方说明。如果读者已经迫不及待要体验事务特性,可以加入 MongoDB 的 beta 计划,更多细节可参官方文档

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

让关系型数据库情何以堪 by zhang liang

让关系型数据库情何以堪

天下武功唯快不破 by 朱 赞赞

天下武功唯快不破

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

2 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT