MongoDB即将推出4.0版本,这款NoSQL数据库很显然针对基于SQL的系统提供了更多深入的支持:ACID事务。遵从ACID原则实现事务是许多应用都需要的能力,对NoSQL用户来说简直是梦寐以求的功能。(ACID,指数据库事务正确执行的四个基本要素的缩写。包含:原子性Atomicity、一致性Consistency、隔离性Isolation、持久性Durability。)
MongoDB公司这周发布消息称即将发布的新版本MongoDB将支持ACID属性——原子性、一致性、隔离性、持久性——支持MongoDB中多个文档之间的事务。对事务的支持为MongoDB用于关键应用打破了最后的障碍,因为NoSQL数据库的常规风格是保证数据的最终一致性(不是即时一致性),这并不能满足许多关键应用的需求。
MongoDB公司CTO及联合创始人Eliot Horowitz在西雅图的一个公司会议上平静地提到:“MongoDB官方将支持ACID”。Horowitz表示,MongoDB 4.0是该公司自去年底发布版本之后首次大的更新,现在beta版本已经可以试用了,预计今年夏季会正式发布。
MongoDB公司战略副总裁Seong Park在一次采访中提到,在该版本发布前,MongoDB只支持单个文档级别的事务一致性。要在应用层面扩展支持多文档事务,还需要开发人员自行定制实现。
MongoDB功能增强
MongoDB是面向文档的数据库,开发者们可以在MongoDB中创建应用片段构成软件对象,我们称之为“文档”。这种方式让开发者们从构建应用之前创建关系型模型的任务中解脱出来了。
不过这样对于数据持久性的需求就变成普遍现象了,这是SQL关系型数据库擅长的能力。
例如,在电商应用中,系统架构师们选择NoSQL数据库就是为了快速数据处理能力,他们必须找到其它的方法为用户提供最准确和最新的数据。这是MongoDB 4.0打算解决的关键应用场景问题。
Seong和Horowitz说,实现多文档ACID事务支持是一个大创举,至少从公司2014年收购WiredTiger公司以来就一直在向这个方向努力。(WiredTiger公司以前是一家存储引擎开发商,后来成为了MongoDB的默认数据存储。)
多文档事务怎么样?
Constellation研究公司分析师Doug Henschen认为,在许多个数据集或者文档中操作事务性数据保持一致性在当今应用环境下是很常见的场景。
Henschen说:“例如,如果你的客户数据在一个文档集里面,而订单明细在另一个文档集,你需要这种多文档能力来保证ACID特性。”到目前为止,在MongoDB中要靠开发者自己设计“复杂的变通方案”来实现。
IDC分析师Carl Olofson表示,MongoDB选择支持事务是被那些希望使用完整ACID事务的用户推动的,这些用户希望存储复杂数据集而不只是单个文档。在这类用户中,他见到过一些用户就是因为MongoDB缺少ACID事务能力而最终改用其它关系型数据库。
缺少对事务的支持不只是带来了选择关系型数据库作为替代品的诱惑,而且会把MongoDB推到与竞争对手MarkLogic公司竞争的劣势。MarkLogic公司推出了第一个成功的商业化NoSQL数据库,支持复杂ACID事务多年了,使用称为“多版本并发控制(MVCC)”的功能实现事务。
搭上DevOps的顺风车
MongoDB近几年的成功主要伴随着敏捷和DevOps开发者运动而来。Olofson说,由于MongoDB无模式的特性,NoSQL软件比传统关系型数据库管理系统更适用于敏捷开发模式。
他说:“使用MongoDB意味着开发者可以灵活构建和修改应用,无需DBA首先定义或者修改数据模型。”不过,这也是有代价的。
Olofson认为,关系型数据库在支持查询(无需开发人员参与)方面仍然是更强大的平台,对保证事务操作功能的支持是MongoDB迈出的重要一步,不过复杂查询能力仍然是关系型数据库的优势。
对于这部分,Henschen表示,MongoDB 4.0包含处理各种事务工作的功能敬请大家期待。
Henschen表示:“这一特性暂时不适用于分片集群环境,MongoDB 4.2发布后才会支持,4.2版本的发布日期尚未确定。”另外,他还说,MongoDB 4.0对于现有MongoDB开发者以及即将选择MongoDB的用户都非常有用,MongoDB可以支持更多的应用了,包括需要ACID事务的应用。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
翻译
相关推荐
-
Google Cloud Firestore将NoSQL数据库瞄准移动设备、物联网
谷歌云平台(Google Cloud Platform,GCP)再次向竞争对手AWS和微软Azure发起进攻: […]
-
数据库部署的全方位静态分析
随着企业IT不断地拥抱敏捷开发实践和采用DevOps模式,以此更快地向市场推出更优质的产品,DBA实际上也开始感觉到压力。
-
深入解读微软Azure DocumentDB
与其他服务相比,微软DocumentDB究竟有哪些特别之处,它解决了用户哪些需求。在本文中,我们就将深入介绍一下微软Azure DocumentDB文档数据库存储。
-
CA王志明:DevOps让开发与运维形成完美闭环
在日常工作当中最费时间的是团队之间的沟通与协作,DevOps就是把IT的各个环节串联起来,从而提高效率。