MongoDB 3.4 功能改进一览

MongoDB 3.4 已经发布,本文主要介绍 3.4 版本在功能特性上做的改进,内容翻译自 [https://docs.mongodb.com/manual/release-notes/3.4/?_ga=1.74729233.2005306875.1453858874)。

分片集群(Sharded Cluster)

Membership Awareness

MongoDB 3.4里,分片集群的所有组件,Config server、mongod、mongos 都能相互感知整个分片集群的存在,了解整个分片集群的配置信息,这样能避免分片集群的误配置,比如在现在的版本,有可能会将一个 shard 错误的加到多个 sharded cluster 了。这个特性引入了如下限制

  • 分片集群里 mongod 启动时,必须显式配置 sharding.clusterRole 为 shardsrv
  • 3.4版本的 mongos 不能连接低版本的 mongod

Config server 的 Primary 节点负责负载均衡

MongoDB 3.2及以前版本里,分片集群的负载均衡由 mongos 负责,多个 mongos 会抢一个分布式锁,抢锁成功的 mongos 会对执行负载均衡任务,在 shard 间迁移 chunk;在3.4版本里,负载均衡将由 Config server 的 Primary 节点负责,预计会在负载均衡并发度及效率上会有大的提升。

不再支持 SCCC Config server 的模式

MongoDB 3.2版本引入了复制集模式的 Config Server(CSRS 模式),在此之前,Config server 由多个镜像的单节点组成(SCCC模式),3.4版本里,MongoDB 将不再支持 SCCC模式的 Config server。

所以往 3.4 版本升级时,如果Config server 还是 SCCC 模式,需要先升级为 SCRS 模式

Sharding Zones

分片集群里引入了 Zone 的概念,主要取代现在的 tag-aware sharding 机制,能将某些数据分配到指定的一个或多个 shard 上,这个特性将极大的方便 sharding cluster 的跨机房部署,详细了解 Sharding zone 机制

Faster Balancing

  • 使用wiredtiger 引擎时,moveChunk 的secondaryThrottle选项默认设置为 false,即不用等待迁移的数据复制到secondary节点
  • 支持并行的 chunk 迁移,对于包含 N 个 shard 的 sharding 集群,MongoDB 最多可以同时跑 N/2 个迁移任务。

复制集(Replica Set)

majority WriteConcern 支持配置是否刷 journal

配置复制集时,增加 writeConcernMajorityJournalDefault 选项,默认为 true,即当指定 WriteConcern 为 majority 时,数据写到大多数节点并且 journal 成功刷盘后,才向客户端确认成功;如果为 false,数据写到大多数节点的内存,就向客户端确认。

支持配置 Primary 追数据的时间

配置复制集时,增加 catchUpTimeoutMillis 选项,默认为2s,来指定新选举出来的 Primary 从其它拥有更新数据的节点追数据的时间,增加该时间能最大限度的减少需要 rollback 的数据,但可能增加整个 failover 的时间,该选项只能在 protocolVersion 为1时使用。

支持 Linearizable Read Concern

"linearizable" Read Concern 级别保证,一定能读到 WriteConcern 为 majority,并且确认时间在读请求开始之前的数据,该级别仅在查询结果只有单个文档的情况下有效。

提升全量同步

  • 在拷贝数据的时候,同时建立所有的索引(以前版本只有_id索引是在同步数据时建立的)
  • 拷贝数据的阶段,secondary 不断拉取新的 oplog,确保 secondary 的 local 数据库有足够的空间来存储这些临时数据。

Decimal Type

MongoDB 3.4 新增对decimal128 format的支持,最多支持34位小数位。

跟 Double 类型不同,decimal 数据存储的是实际的数据,无精度问题,以9.99为例,decimal NumberDecimal("9.99") 的值就是9.99; 而 Double 类型的9.99则是一个大概值 9.9900000000000002131628....

Aggregation

MongoDB 在3.4版本增加了大量的 aggregation 操作符,功能更加强大了,举几个例子

  • bucket 能对方便的对数据进行分类
  • $grahpLookup 在 3.2的$lookup 的基础上更进一步,能支持更复杂的关系运算了。
  • $addFields 使得文档操作更丰富了,比如将某些字段求和存储为新的字段。

详细的介绍请参考Aggregation部分

Collation and Case-Insensitive Indexes

MongoDB 3.4 开始支持 collation,在之前的版本里,文档里存储的字符串,不论是中文还是英文,不论大小写,一律按字节来对比,引入 collation 后,支持对字符串的内容进行解读,可以按使用的 locale 进行对比,也支持对比时忽略大小写。

create、createIndexes、find、aggregate 等涉及字符串操作的命令都支持 collation。

视图(Views)

MongoDB 3.4里增加了对只读视图的支持,视图将集合里满足某个查询条件的数据虚拟成一个特殊的集合,用户可以在特殊的集合上做进一步的查询操作。

安全提升(Security Enhancement)

MongoDB 3.4 支持轮转的将复制集、或分片集群的各个节点开启鉴权,不需要停服务,详细步骤参考Enforce Keyfile Access Control in a Replica Set without Downtime

工具(MongoDB Tools)

MongoDB 3.4 引入 mongoreplay 工具,可用于监控并记录 mongod 上执行的命令并 replay 到另一个 mongod 实例上,该工具可用于代替 mongosniff。

General Enhancements

  • 支持 systemd
  • 降低默认的 wiredtiger cache 配置

Changes Affecting Compatibility

可能影响兼容性的修改

升级步骤(Upgrade Procedures)

对新版本功能感兴趣的同学可以下载 MongoDB-3.4 来试玩下。

时间: 2024-08-17 16:05:45

MongoDB 3.4 功能改进一览的相关文章

Lua 数学库的所有函数功能作用一览

  这篇文章主要介绍了Lua 数学库的所有函数功能作用一览,本文罗列了lua数学库的所有函数,并对每个函数的功能作用做了简短描述,需要的朋友可以参考下 math.pi 为圆周率常量 = 3.14159265358979323846 abs 取绝对值 math.abs(-15) 15 acos 反余弦函数 math.acos(0.5) 1.04719755 asin 反正弦函数 math.asin(0.5) 0.52359877 atan2 x / y的反正切值 math.atan2(90.0,

Windows Azure SDK for .NET最新版本功能改进说明

Windows Azure SDK for .NET的最新版本有很多大的功能改进,包括 .NET4.5 / Windows Server 2012 (OS Family 3)在 Web/Worker Role上获得支持 VS工具-效率提升 Web/Worker Role的缓存- General availability Storage – 新工具和客户端类库 Service Bus – 升级的客户端类库和工具 此外,现在Windows Azure PowerShell (单独下载)可以支持Ser

六大功能改进 百度云ROM推出正式版

对于手机基本常用功能改进百度云ROM由百度公司推出,是基于Android 4.0进行开发,能够带给国内用户更为贴心的Android智能手机体验.自6月4日发布第一版以来,经过16个版本迭代,吸取了用户的大量建议,通过快捷的开发模式不断迭代,于12月12日推出了百度云ROM正式版V1,为用户提供更加稳定的版本,解决了用户在使用手机过程中频繁升级的麻烦.百度云ROM与安卓原生系统相比,进行了改进创新,以方便中国用户使用.针对原生系统,进行了六大功能改进:对于手机基本常用功能三大改进1.更实用的通讯功

Unreal Engine 4.5 发布, 超 40 项功能改进

虚幻引擎 Unreal Engine 4.5 发布,该版本包括超过 40 项的功能改进,有动画重定位.自动C++热加载.光照UV贴图生成.流媒体纹理,以及能创造出华丽动态场景的实时光线追踪软阴影,可以生成超真实皮肤材质的屏幕空间次表面散射等.详细介绍请看发行说明. 虚幻引擎是一个面向PC.Xbox 360.iOS和PlayStation 3的完整开发框架,其中提供了大量核心技术.内容创建工具以及支持基础设施内容. 文章转载自 开源中国社区 [http://www.oschina.net]

Windows 7系统的基本功能和参数改进一览

以下是Windows 7的基本功能和参数: 任务栏:取消了原来的快速启动栏.同时取消了此前Windows各版本中,在任务栏中显示运行的应用程序名称和小图标的做法,取而代之的是没有标签的大图标,类似于原来在快速启动工具栏中的小图标的放大版本,用户可以拖放图标进行定制,并可以在文件和应用程序之间快速切换.右键点击程序图标将显示最近的文件和关键功能. 此外,"开始"菜单中的"程序"也一改以往缺乏灵活性的排列方式,而是根据使用频率和使用时间,按照"常用"

Office 2013的功能改进

以下是Office2013的改进,希望对你有帮助. 作为Windows 8的官方办公室套装软件,Office 15在风格上保持一定的统一之外,功能和操作上也向着更好支持平板电脑以及触摸设备的方向发展.微软此前已经演示ARM版Windows 8中将会内置Office 15组件,仍是以桌面版软件的形式存在.微软下一代办公软件Office 15将于今夏放开公测,目前正处在技术预览阶段,微软已经选择部分合作对象进行测试,国外媒体The Verge得知Office 15的一些全新特点. 正如用户期待的那样

AVG 2012 新版全面测试,功能改进不容错过

随着AVG杀毒 2012 beta版的测试持续进行,笔者也逐渐了解了这款功能强大的杀毒软件.近期,AVG发布了AVG杀毒2012,相比AVG2011而言,新版程序运行速度更快了,扫描和查杀时间也缩短了不少.平均磁盘占用减少了45%,处理器和内存占用减少了20%,启动速度提高了20%.毫无疑问,AVG2012是一款 "不卡的杀毒软件". 安装过程秉承了AVG一贯的简约,在正文中的AVG2012标明了软件纯正的血统和强劲能力的继承. AVG所推崇的智能扫描功能,这也是AVG2012实现&q

Windows 8.1安全改进一览

  Windows 8.1预览视频公布了,启动到桌面功能通过截图证实了,越来越多的细节特性也被挖掘出来,公众对Windows 8.1的了解也越来越深入.但很多人在关注Win8.1种种新特性和改进的时候,忽略了一些同样重要的东西,那就是Windows 8.1在安全方面的改进. 根据一些已知的信息表明,Windows 8.1将在恶意软件防护上采取更主动的措施,采用新的网站安全证书验证方式,甚至打算为每一台PC添加加密和生物安全技术. Windows 8.1内置的反恶意工具Windows Defend

正式版IE11功能增减一览

  Windows 8.1发布日期揭晓了,随着微软官方正式宣布,从10月17日晚上7点起,Windows 8.1将在全球范围内,开始通过Windows 8上的Windows应用商店免费为Windows 8用户进行更新推送.除了在Windows 8基础上的改进外,Windows 8.1还带来了一些新东西,比如将随同8.1一起推出的IE11.作为家族最新一代成员,IE11将进一步提升性能和安全,并带来一些新功能,同时也会对 一些老旧的功能进行删减和优化.今天我们就把目光聚焦在功能增减上,看看IE11