Mongodb引擎RocksDB系列----初识RocksDB

网友投稿 868 2022-05-30

MongoDB引擎RocksDB系列----初识RocksDB

RocksDB简介

RocksDB由facebook开创和维护(项目git址:https://github.com/facebook/rocksdb), 该项目旨在开发一个与快速存储器(尤其是闪存)存储数据性能相当的数据库软件,以应对高负载服务。RocksDB官网(https://rocksdb.org)首页头条注明了其项目的宗旨:RocksDB是一个可嵌入的,持久型的key-value存储,为了更快速的存储环境而生。RocksDB起源Leavel DB,在Level DB的基础上优化而成,其在写性能上有了很大的提升。

Mongodb和RocksDB的关系

mongodb从3.2版本开始支持多数据存储引擎(WiredTiger,MMAPv1, In-Memory),其中WiredTiger为MongDB默认的存储引擎。所谓的多数据储存引擎形象的说就是拔插式引擎,你想使用哪个引擎就插入这个引擎并拔掉前面的引擎就可以使用了,简单方便快捷。Mongodb提供整个数据库集群的管理工作,而真正将数据持久化的则是数据存储引擎。

Mongodb和存储引擎之间的关系

Mongodb 集成RocksDB

要将RocksDB集成到Mongodb中,首先需要RocksDB实现Mongodb 的Engine API,这样mongodb通过操作Engine API 来存储数据而不用关注真正的数据存储引擎是什么。RocksDB由于是一款独立的数据存储引擎,facebook并没有实现mongodb Engine API, 因此需要使用第三方提供的开源软件Mongo-rocks(git :https://github.com/mongodb-partners/mongo-rocks).

安装和编译RocksDB:

RocksDB依赖一些开源第三方软件,需要先安装这些软件:

gflags:

unzip gflags-2.0.zip

cd gflags

./configure && make && sudo make install

Snappy:

Mongodb引擎RocksDB系列----初识RocksDB

tar -xzvf snappy-1.1.4.tar.gz

cd snappy-1.1.4

./configure && make && sudo make install

zlib, zlib-devel, bzip2, bzip2-devel:

sudo yum install zlib

sudo yum install zlib-devel

sudo yum install bzip2

sudo yum install bzip2-devel

zstd:

tar zxvf zstd-1.1.3.tar.gz

cd zstd-1.1.3

make && sudo make install

编译 rocksdb:

注意:rocksdb版本向后兼容的,因此最新的版本都是可以集成的,本文档以5.4.10版本为例。其中rocksdb-rocksdb-5.4.10为编译的rockdb源码目录.

cd rocksdb-rocksdb-5.4.10; USE_RTTI=1 CFLAGS=-fPIC make shared_lib;sudo INSTALL_PATH=/usr make install

编译mongo-rock ,mongod:

注意:其中mongo-r3.2.18为mongodb源码目录,mongo-rocks-r3.2.18为mongo-rocks的源码目录.

mkdir -p /data/mongodb/shm/mongo-r3.2.18/src/mongo/db/modules/;

ln -sf /data/mongodb/shm/mongo-rocks-r3.2.18 /data/mongodb/shm/mongo-r3.2.18/src/mongo/db/modules/rock;

cd /data/mongodb/shm/mongo-r3.2.18; scons MONGO_VERSION=3.2.18 all --ssl  -j 16  --opt=off;

启动mongod:

执行完上述的编译步骤后,编译出来的mongod的存储引擎就是RocksDB了,启mongod的时候带参数--storageEngine=rocksdb 即可(详尽的参数可以参考文章https://www.percona.com/doc/percona-server-for-mongodb/3.4/mongorocks.html).

MongoDB

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:脱离虚拟机,windows系统连接开发板
下一篇:《Office 2019高效办公三合一从入门到精通 : 视频自学版》 —2.1.4输入带圈文本
相关文章