MongoDB全局事务Beta版宣布

就在12个多月前,我们宣布将多文档ACID事务引入MongoDB。几周后,我们发布了第一个beta测试版。之后这一特性在经过了数千用户的检验后进入了GA(General Availability)阶段,并作为MongoDB 4.0的一部分于2018年6月发布。

现在,我们非常高兴地宣布我们将引入全局事务作为下一个阶段,将多文档ACID保证从副本集扩展到分片集群。由此,通过对跨越大规模、全球分布的应用程序执行强制的事务性保证,你现在可以更容易地处理一系列完整的用例。

我们计划在今年晚些时候*将MongoDB 4.2推向市场,并将其尽快交付到你的手中。因此我们今天将开启一个beta版测试计划,邀请大家注册并尝试。

它们是什么样子的?

全局事务遵循我们最初的设计目标——它们感觉就像你一直以来在关系数据库中使用的事务一样。它们具有类似的语法、多语句(multi-statement)和强制快照隔离,使任何之前有事务使用经验的人都很容易上手。如果你已经在MongoDB 4.0中使用过事务,那么在4.2中使用全局事务没有任何区别——无论是在副本集中还是在分片集群中,跨文档、集合和数据库之间执行事务的实现都是一致的。请查阅全局事务文档以了解更多信息。

还有什么?

除了支持分片集群之外,4.2中的事务还将带来一些其它特性。这些并非全部都包含在最初的beta版本中,但是我们计划会在进入RC版本(release candidate)和GA阶段的过程中定期发布:

  • 大事务: 通过跨多个oplog条目来表示事务,你将能够在单个ACID事务中写入超过16MB的数据(以现有的60秒默认最大执行时间为准),从而进一步简化应用程序开发。

  • 事务富诊断信息: 事务的各种指标将写入系统日志,以在执行时间、锁、访问文档数量等方面暴露出遥测数据,帮助你优化应用程序性能。

  • 事务的错误处理: 新的驱动端将使你在应用程序中的重试逻辑变得更容易。

  • 可变片键值: 有时候你会需要将一个文档移动到新的分片。例如,你可能会上线一个新的地理区域以更好地服务本地用户,或者根据老化策略将文档重新放置到其它存储层。使用4.2版本,你将能够更新一个或多个片键值,以使用单一的ACID事务(取决于现有的60秒默认执行时间)更改集群中文档的位置。

下一步

希望我们已经让你对即将到来特性有了一些体会,所以赶快注册全局事务beta测试计划。由此我们将为你提供更多关于如何参与、从何处获得代码、最佳实践和问答论坛的指导。

我们迫不及待地想看看你能构建出什么了!

> #### 安全港声明
>
> MongoDB产品所描述的任何特性或功能的开发、发布和时间安排仍由MongoDB公司自行决定。此信息仅用于概述我们的一般产品方向,不应在作出采购决策时依赖此信息,也不应将此信息作为交付任何材料、代码或功能的保证、承诺或法律义务。除法律要求外,我们没有义务更新任何前瞻性声明,以反映此声明日期之后发生的事件或情况。

本文译自:Announcing the MongoDB Global Transactions Beta Program

发表评论