MongoDB 3.4
社区版于2016年年底正式发布,目前已经历10次的小版本迭代,在经过长时间的内部场景测试后,阿里云数据库团队正式支持 MongoDB 3.4
,让用户直接在云上享受稳定的数据库服务。
MongoDB 3.4
的主要功能改进参考这里,简单总结一下就是:
- 更快的主备同步,参考 MongoDB 3.4 复制集全量同步改进
- 更高效的Sharding集群,参考 MongoDB 升级3.4对均衡的影响
- 更强大的功能,如
Readonly View
、Collation
、Decimal type
等 - 更丰富的aggregation操作,如
$bucket、$graghLookup
One more thing
阿里云数据库 MongoDB 3.4
版本里,除了上述官方社区版本的特性外,我们还正式支持了 Mongorocks 引擎,一款基于RocksDB 实现的 MongoDB 存储引擎。
MongoDB 当前默认的 Wiredtiger 引擎非常优秀,相比 MongoDB 早期的 mmapv1 存续引擎性能上有非常大的提升,而且支持数据压缩,存储成本更低。
Wiredtiger 基于 btree 结构组织数据,在一些极端场景下,因为 Cache eviction 及写入放大的问题,可能导致 Write hang,细节可以到 MongoDB jira 上了解相关的issue,针对这些问题 MongoDB 官方团队一直在优化,我们也看到 Wiredtiger 稳定性在不断提升;而 RocksDB 是基于 LSM tree 结构组织数据,其针对写入做了优化,将随机写入转换成了顺序写入,能保证持续高效的数据写入。
如下是使用 sysbench 进行的一个简单的 insert 测试,insert 的集合默认带一个二级索引,在刚开始 Wiredtiger 的写入性能远超 RocksDB,而随着数据量越来越大,WT的写入能力开始下降,而 RocksDB 的写入一直比较稳定。
更多 Wiredtiger、Mongorocks 的对比可以参考 Facebook 大神在 Percona Live 上的技术分享。
除了 RocksDB,MongoDB 云数据库还支持 TerarkDB 引擎,借助 TerarkDB 的全局压缩技术,在提高压缩率的同时,能大幅提高随机查询的性能。
阿里云数据库MongoDB版功能一览
欢迎大家来体验宇宙最强的 MongoDB 云数据库服务