数据与智能

MongoDB 4.0将支持多个文档交易

2018年2月中旬,在中国春节假期中,我们收到了MongoDB社区的以下消息:

“ MongoDB 4.0将增加对多文件交易的支持,使其成为将文档模型的速度,灵活性和功率与酸保证相结合的唯一数据库。”

我们知道,酸是传统DBM的一个非常基本的功能,它应该是许多DBMS产品的卖点。However, MongoDB is a document based NoSQL system, which provides many fancy functionalities such as a flexible schema and data model (you don’t need a static model to write to MongoDB), powerful aggregation and analytics etc. It does not support a transaction commit and rollback like what we did in the traditional SQL statement. This is being changed in the NoSQL world.

什么是酸?

酸的术语代表4个关键字:

  • 原子。此属性要求每次交易应为“全部成功或全部失败”:如果交易的一部分失败,则整个交易失败,并且数据库状态保持不变。

在当前版本的MongoDB中,其原子性应用于整个文档的交易,但不适用于多个文档。在大多数用例中,我们可以说这是原子。但是在其他复杂情况下,没有交易,开发人员必须在应用程序层中实现自定义逻辑。

  • 一致性。该属性要求编写到数据库的任何数据必须根据所有定义的规则,包括约束,级联,触发器以及这些组合的任何组合有效。
数据智能 - 大数据的未来
大数据的未来

有了一些指导,您可以制作一个适合组织需求的数据平台,并从数据资本中获得最大的回报。

获取指南

在复制设置模式下,有主要的mongo服务器和辅助服务器。已经实现了它,以确保单个节点的一致性或跨节点应用于单个文档的一致性。但是,如果您写入多个文档,其中一些文件失败,则必须在应用程序代码中处理它。

  • 隔离。此属性用于并发执行。它要求如果交易同时执行,则结果等同于其串行执行。交易无法看到另一个交易的部分结果。

本手册可以详细解释MongoDB隔离属性。

  • 耐用性。这样可以确保一旦进行交易,即使发生功率损失,崩溃或错误,也将保持这种状态。

在较早的版本中,它并不支持耐久性,但越来越好。这个博客来自MongoDB网站的解释很好。

MongoDB将带来4.0版?

我们一直在几个项目和团队中使用MongoDB,这对开发人员来说是个好消息。使用MongoDB交易,我们可以消除应用程序中的复杂逻辑,并将其留给MongoDB服务器进行处理。目前将于今年夏天发布。下图显示了MongoDB期望的每一个重大变化和演变。我们可以专注于目前正在开发的黄色项目。在MongoDB 4.0*中,交易将在单个副本集上工作,MongoDB 4.2*将支持跨碎片部署的交易。

MongoDB 4.0将支持多个文档交易

来源来自:https://www.mongodb.com/blog/post/multi-document-transactions

因此,一旦发布了此功能,开发人员就可以更专注于其他高价值工作,而不是花费大量时间处理多个文档和例外。应用程序Java代码将如下所示:

MongoDB 4.0将支持多个文档交易

发表评论

该站点使用Akismet减少垃圾邮件。了解如何处理您的评论数据

肯特·江

目前,我在杭州的完善中国GDC担任首席技术顾问。我在Java,CRM和BI Technologies的IT行业拥有8年的经验。我感兴趣的技术领域包括业务分析,项目计划,MDM,质量保证等

来自作者的更多

订阅每周博客摘要:

报名
跟着我们
推特 LinkedIn Facebook YouTube Instagram