MongoRocks 4.0 is Coming !

前言

MongoRocks 4.0来啦!各大云商/互联网公司内部用户/国内RocksDB开发者/不熟悉WiredTiger的朋友/开源技术爱好者快来关注一下。

前生今世

RocksDB是一款优秀的存储引擎,具有高度可调参性,极致数据压缩比。RocksDB在国内非常活跃,各大云商/公司内部几乎都有数款基于RocksDB引擎的存储系统。国内外基于RocksDB的存储项目也如雨后春笋,比如TIKV/TIDB,TerarkDB,MyRocks,CockRoachDB等等。

MongoDB作为Nosql文档型数据库中的首把交椅,官方支持Mmap和WiredTiger两种引擎。而MongoRocks,指的是MongoDB对RocksDB引擎的适配,RocksDB在其中的作用等同于Mmap和WiredTiger。

MongoDB 3.2与MongoDB 3.4系列支持RocksDB引擎,该引擎早期由Facebook的RocksDB团队和MongoDB公司的工程师合作完成,主要由原Facebook的IgorCanadi和Percona的Igorsol维护。国内各大云商也支持MongoRocks引擎的售卖。然而由于MongoDB 4.0多文档事务的引入,MongoDB代码经历了巨大的重构,MongoRocks 4.0的推出,也遇到了技术上的困难。

就在不久前,华人工程师wolfkdy向MongoRocks项目提交了一个接近5000行的mr,该mr的review由IgorCanadi和wolfkdy共同完成。该mr的合入,标志着MongoRocks 4.0的来临。

RocksDB vs WiredTiger

本文中不打算对比其优缺点,容易引起口水仗。只说说它们共同的地方。

RocksDB和WiredTiger均为优秀的kvengine。支持mvcc功能。有着良好的文本压缩率,多核扩展性好。然而WiredTiger 3.0 支持比较前沿的Timestamp Ordering Transaction(T/O)技术,这一点是RocksDB所不具备的,这也是为何MongoRocks 4.0迟迟无法推出的最主要的原因。而wolfkdy最主要的工作,就是对这一部分的补完,网上对T/O技术的介绍并不多,这一篇MongoDB的事务,时间戳与混合逻辑时钟是属于结合MongoDB多文档事务介绍的比较好的。

谁在维护

MongoRocks 4.0是基于MongoDB 4.0.3 的代码构建的,MongoDB 4.0.3遵从AGPL协议,选择这个版本并没有特殊的原因。MongoDB 4.0系列的中间层的差异并不大。

随着MongoRocks 4.0的推出,wolfkdy成为了MongoRocks项目的Owner一员。作为MongoRocks项目的Maintainer持续走下去。值得一提的是,这也代表着越来越多的优秀的华人工程师对前沿开源数据库有了更好的掌控力。这位华人工程师wolfkdy就是华为云Nosql团队的数据库工程师–孔德雨。孔德雨也是MongoDB中文社区组委会成员,与其他MongoDB专家共同致力于MongoDB社区平台建设。

猜你喜欢

转载自www.cnblogs.com/tyseoer/p/12733118.html