低代码到底是不是行业毒瘤?一线大厂怎么做的?戳此了解>>> 了解详情
写点什么

MongoDB 宣布即将支持 ACID 事务

2018 年 2 月 16 日

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 计划,更多细节可参官方文档

2018 年 2 月 16 日 20:372679
用户头像

发布了 321 篇内容, 共 110.8 次阅读, 收获喜欢 110 次。

关注

评论

发布
暂无评论
发现更多内容

我如何用 Python 给 Github 的 README.md 做一个访客统计功能

遇见

Python GitHub 开源 badge open-source

你不必读完一本书

池建强

学习 读书

我从来不在朋友圈晒投资人合影,却融了很多钱

邓瑞恒Ryan

高效工作 人脉 职业规划

Scrum vs Kanban,如何选择

TerryLee

Scrum Kanban 敏捷开发 Worktile 研发管理

关于Iterator和Iterable

shengjk1

Java Iterator和Iterable

Arduino 蓝牙遥控+超声避障小车

黄耗子皮

树莓派 极客

国内10大前端团队网站

有思且行

技术 前端 大前端

给业务线的总经理多交代了几句

霍太稳@极客邦科技

创业 效率 团队管理

【SpringBoot】掌握这两个属性,你的测试类可以启动的更快些

遇见

Java Spring Boot Unit Test

如何解决 Kubernetes 的 DNS 延迟问题

倪朋飞

Kubernetes 微服务 云原生

一篇文章搞定 java 中的 path 和 classpath

shengjk1

Java classpath vs path classpath path

2020,这个世界会好吗?

IT民工大叔

读书笔记

Fire Fast 再深一层的是什么?

树上

管理 考核 Fire Hire 用人

一文搞定 equals 和 hashCode

shengjk1

Java equals vs hashcode

死磕Java并发编程(1):探究Java并发机制的底层原理

七哥爱编程

Java Java并发 并发编程

极客父母送给孩子的 ABC Book 就是这么 GEEK

魏彬(rockybean)

GEEK BOOK

Kubernetes 容器运行时演进

倪朋飞

Kubernetes 容器 云原生

聊聊:Java

谢烟客

Java 编程 开发者 随笔杂谈 「Java 25周年」

像黑客一样思考

Fooying

黑客思维 黑客 安全攻防

Flink获取kafka中每条消息对应的topic

shengjk1

flink kafka flink 消费 kafka 获取 topic等信息

公司大了,人多事杂,如何落地项目制?

树上

项目制 落地 公司管理 业务线 考核

三点思考,判断一家公司是否值得加入

邓瑞恒Ryan

高效工作 个人成长 职业

Java中的Stream用还是不用

孙苏勇

Java 流计算 程序设计 性能

用你喜欢的 emoji 作为页面的 favicon 吧 🎉

遇见

CSS html favicon emoji

简单到不可能失败 —— 《微习惯》

零和幺

读书笔记

无代码开发

Fenng

Kubernetes中的CI/CD

倪朋飞

Kubernetes DevOps 微服务

程序员职业鉴赏

陆陆通通

程序员 加班 职业病 鄙视链

破解 Java Agent 探针黑科技!

谭建

Java JVMTI APM Profile

阿里面试,一面就倒在了Java内存模型上?赶紧来看看

七哥爱编程

面试 Java并发 内存模型

回“疫”录:开篇

小天同学

疫情 回忆录 现实纪录 纪实

2021 ThoughtWorks 技术雷达峰会

2021 ThoughtWorks 技术雷达峰会

MongoDB宣布即将支持ACID事务-InfoQ