MongoDB发布4.0版本,支持ACID事务

MongoDB最近发布了最新的4.0版本。

毫无疑问,这一版本的主要特性是支持多文档ACID事务。MongoDB向与关系型数据库产品的融合迈出了一大步,现在支持会话的概念,并可以使用start_transaction()和commit_transaction()方法将多个数据库命令包含在单个MongoDB事务中。

MongoDB的事务遵循著名的ACID模型。原子性可以确保属于同一个事务的命令要么全部被执行要么都不执行,永远不会有剩余或出现部分数据。一致性是指数据库始终保持从一个有效状态转换到另一个有效状态,永远不会处于无效状态。隔离保证了多个事务可以同时执行,而其中任何一个事务都无法查看其他事务的部分结果。同时执行多个事务与顺序执行它们具有相同的最终结果。持久性可以保证即使在系统出现故障的情况下,已提交的事务也将保持持久性。

MongoDB的多文档事务仅适用于使用WiredTiger存储引擎的服务器,且当前仅支持单个副本集。4.2版本将带来分片集群支持。

多文档事务具有一些限制,例如无法影响数据库目录(即列出索引和集合),并且无法执行不属于CRUD和信息列表范围内的命令。

这些事务只能使用readPreference和readConcern,local或majority。事务内的readPreference会覆盖掉在集合、数据库和客户端级别设置的readPreference。

查询游标在事务中是隔离的,这意味着事务中的getMore操作只能在内部使用,然后事务外的只能在事务外使用。MongoDB提供了大量用于支持事务操作的命令。

MongoDB Stitch是MongoDB提供的一个无服务器平台,用于快速开发可安全访问MongoDB服务的客户端应用程序,现已公开发布。MongoDB Stitch通过JavaScript函数的方式提供无服务器功能,还提供了QueryAnywhere,让客户端代码可以安全地从Web或移动应用程序查询MongoDB服务器。在数据库发生变更时,触发器将做出一些动作,类似于RDBMS的触发器。即将推出的Mobile Sync将允许MongoDB服务器和移动客户端(已经测试版中发布的MongoDB mobile)之间进行自动数据同步。

MongoDB 4.0版引入了double、string、objectId、boolean、date、integer、long和decimal类型之间的类型转换。这样可以增强数据库内的数据转换,减少对ETL过程的依赖。

测试版中还包括了MongoDB Enterprise Kubernetes Operator,用于在Kubernetes集群中部署MongoDB,同时利用MongoDB Ops Manager的功能。

推荐文章

沪公网安备 31010702002009号