写点什么

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

2018 年 7 月 22 日

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 的功能。开发人员可以下载最新版本,也可以试用 MongoDB Atlas 提供的在线服务。

查看英文原文 MongoDB 4.0 Released

2018 年 7 月 22 日 03:452311
用户头像

发布了 731 篇内容, 共 368.6 次阅读, 收获喜欢 1860 次。

关注

评论

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

爆火的低代码,到底是真需求还是伪风口?

ToB行业头条

低代码

接口测试并不只是测试参数和返回值

测试人生路

接口测试

vscode + vim : vscode 全键盘使用方案

lmymirror

vim vscode Spacemacs

为什么有的专科程序员比本科程序员薪资高?他们之间有多大的区别?

Java架构师迁哥

来不及解释了,快上车!LR.NET开发平台助力企业信息互联

雯雯写代码

nginx 平滑升级、以及导入第三方模块

sinsy

nginx 升级

【应用运维】公司业务迭代迅速,运维如何高效进行应用发布?

嘉为蓝鲸

可视化 PaaS 运维自动化 部署与维护 发布

阿里P8大牛整理的300页图解网络知识+计算机底层操作系统

Java架构之路

Java 编程 程序员 架构 面试

奋力准备一个月成功进字节,来看一下我都看了哪些资料做了哪些准备

小Q

学习 编程 程序员 架构 面试

懵了!一口气问了我18个JVM问题!

yes的练级攻略

面试 JVM

史上最通俗Netty入门长文:基本介绍、环境搭建、动手实战

JackJiang

网络编程 Netty nio 即时通讯 IM

深圳区块链钱包系统开发,区块链钱包app源码

13530558032

学习笔记:架构师训练营-第八周

四夕晖

区块链币支付系统开发搭建,USDT支付平台源码

13530558032

奥卡姆剃刀 - 如无必要,勿增实体

石云升

认知 奥卡姆剃刀 简约

区块链IM即时社交通讯系统开发,区块链社交平台源码搭建

13530558032

C++调用Go方法的字符串传递问题及解决方案

华为云开发者社区

c++ 内存 代码

《深入理解java虚拟机》- java内存区域

never say never

JVM笔记 堆内存

Java读取Excel/CSV格式的科学计数法问题

团子粑粑

Java Excel csv

Android热修复之DexPatch介绍

阿里云金融线TAM SRE专家服务团队

android

go-zero 如何扛住流量冲击(一)

Kevin Wan

go microservice go-zero goctl

渣本全力以赴33天,四面阿里妈妈(淘宝联盟),拿下实习岗offer

小Q

Java 学习 编程 架构 面试

适用初学者的5种Python数据输入技术

华为云开发者社区

Python 数据 函数

架构师训练营 -week09-作业

大刘

极客大学架构师训练营

7面阿里,最后一面居然挂在了JVM上面!狠下决心恶补JVM知识

Java架构之路

Java 程序员 架构 面试 编程语言

备战2021年金三银四,阿里P8面试官梳理的2020年999道大厂高频Java面试题(附答案)

Java架构之路

Java 编程 程序员 架构 面试

区块链交易所软件,数字货币场外交易系统搭建

13530558032

惊喜!Alibaba架构师终于发布“微服务架构与实践”文档

Crud的程序员

架构 微服务

这4个Java异常框架,很多人竟然还不知道

比伯

Java 编程 架构 面试 计算机

这才是图文并茂:我写了1万多字,就是为了让你了解AQS是怎么运行的

鄙人薛某

Java 并发编程 AQS 并发 ReentrantLock

K3d vs Kind 谁更适合本地研发

郭旭东

Kubernetes k3s kind

演讲经验交流会|ArchSummit 上海站

演讲经验交流会|ArchSummit 上海站

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