QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

MongoDB 4.0 有望支持跨文档事务

  • 2018-02-23
  • 本文字数:1023 字

    阅读完需:约 3 分钟

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

自 MongoDB 并购了 WiredTiger 及其关系数据库存储引擎以来,很多技术专家一直翘首以待 MongoDB 何时提供对跨文档事务(multi-document transaction)的支持。MongoDB 在本周宣布,跨文档事务有望于今年夏天加入到 MongoDB 4.0 中。

MongoDB 的 Grigori Melnik 宣称,“80% 到 90% 的应用是完全不需要跨文档事务的”。然而他的说法有待商榷,在层次数据库中很有可能存在大量的反规范化(denormalized)数据,此类数据需要支持多地同时更新以确保一致性。Melnik 继续指出:

此外,一些开发人员和数据库管理员受限于业已存在 40 多年的关系数据建模,总是误以为多表或多文档事务是所有数据库的要求,无论实际需要构建何种数据模型。其他一些人则担心,虽然他们的应用当前不需要跨文档事务,但将来可能会需要,他们不希望过度扩展他们的数据库。

跨文档事务是 ACID 的基石。MongoDB 自 3.0 版起,开始支持跨文档事务。在 3.0 版中,MongoDB 具备了多版本并发控制(MVCC)技术,该技术是一种快照隔离技术,通常是由PostgreSQL 和Oracle 等关系数据库提供。最新版本的SQL Server 也使用MVCC 实现其“内存优化”表。

MongoDB 3.2 增加了对“读取关注”(Read Concern) 的支持。在3.2 版之前,客户只有知道进行通信的节点时,才会接收数据。读取关注功能允许客户请求为大多数节点所知的数据。需要注意的是,根据文档介绍,“无论读取的关注级别,节点上的最新数据可能并未反映系统中数据的最新版本。”

MongoDB 之后在 3.6 版中提供了其所宣称的“因果一致性”。在以前的MongoDB 版本中,并不能保证操作是按指定顺序进行的。例如,当删除一组记录后再执行一次读取操作时,可能会返回刚被删除的记录。使用因果一致性,用户可以指明读取操作取决于写操作的结果,确保了在执行读取操作之前先完成删除操作。

最后一点,MongoDB 4.0 将提供执行一致性读取的能力。也就是说,MongoDB 只返回数据库在读取操作开始时已知的数据。正如在InfoQ 文章“[事务隔离级别和脏读的快速入门] http://www.infoq.com/cn/articles/Isolation-Levels )”中所介绍的,以前版本的 MongoDB 返回的结果可能和任何时间点都不一致。它甚至可能跳过一些文档,或是在一次查询中返回同一文档的多个版本。

希望想要试用跨文档事务的开发人员,积极加入到 MongoDB 4.0 beta 计划中。

查看英文原文: MongoDB 4.0 to Include Multi-Document Transactions

2018-02-23 18:002951
用户头像

发布了 391 篇内容, 共 142.2 次阅读, 收获喜欢 257 次。

关注

评论

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

工业物联网PaaS平台的商业模式研究

不在线第一只蜗牛

云原生 物联网 PaaS

【Abyss】Android平台应用级系统调用拦截框架

iofomo

android 安全 拦截器

干货满满!第二期流程挖掘实践训练营圆满落幕~

望繁信科技

流程挖掘 流程资产 流程智能 数字北极星 望繁信科技

mac苹果电脑办公套件全家桶下载:Office2019 for Mac 下载

你的猪会飞吗

Microsoft Office 2019 office 2019 mac破解软件下载

实用的快速编写代码软件 TeaCode for Mac v1.1.3激活版

Rose

功能强大的矢量绘图软件 EazyDraw for Mac v11.8.2中文版

Rose

2024中国算力大会,河南如何绘写算力长卷?

脑极体

AI

假期结束秋招喜来,瞧瞧节后字节跳动的面经

王中阳Go

面经 go基础 Go面试宝典 Go 面试题 面经 后端 大厂

Termius (终端模拟器/ssh/sftp客户端软件)

Rose

苹果电脑防火墙软件 Radio Silence for mac v3.3 最新永久密钥

Rose

关于深度学习量化的操作

芯动大师

深度学习 gpu 模型化

开发一个 PicGo 插件

yuanyxh

前端 PicGo js

解锁 PDF 文件:使用 JavaScript 和 Canvas 渲染 PDF 内容

yuanyxh

前端 js PDF

ps替代品:苹果图像处理软件Acorn for mac注册版

Rose

Qbserve for Mac 提高工作效率 v1.9激活版

Rose

试用完几十款ETL工具后的经验总结,ETL工具用这三款就足够了

RestCloud

kettle ETL DataX ETL数据集成

搭建 CNode 技术社区智能体

Botnow

node.js 开源 AI AI 智能体

Axure RP 10中文授权版永久使用 mac/win

Rose

vivo 全链路多版本开发测试环境落地实践

vivo互联网技术

测试环境 流量染色

OpenAI o1开辟“慢思考”,国产AI早已集结在CoE“组团”先出发

脑极体

AI

火山引擎AI创新巡展深圳站定档9月24日!豆包大模型将全新发布视频生成模型

新消费日报

JDK23如约而至,数十种新玩法,你期待哪一种?

江南一点雨

探索淘宝API:解锁关键词搜索商品列表的无限可能

代码忍者

API 接口 pinduoduo API

Go 错误处理指北:pkg/errors 源码解读

江湖十年

后端 错误 错误处理 Go 面试题 面经 后端 大厂

Path Finder for Mac(强大的文件管理工具) v2176中文激活版

Rose

Mint Expedition Season 3 拉开帷幕:登顶高峰的时刻到了

NFT Research

blockchain web3 空投

借助Python和搜狐视频联盟API自动推荐热门视频

幂简集成

视频 API

MongoDB 4.0有望支持跨文档事务_架构_Jonathan Allen_InfoQ精选文章