Mongodb多存储引擎支持机制

发布时间:2024-11-25

Mongodb多存储引擎支持机制

Mongodb mmapv1存储引擎解析中介绍了Mongodb默认的mmapv1引擎的实现机制,

在Mongodb 3.0版本中,引入了WiredTiger存储引擎,同时还有实验版本的In-memory引擎、rocks引擎,本文将介绍Mongodb是如何支持多存储引擎的。

(查看大图)

DatabaseHolder

DatabaseHolder是Mongodb数据库操作的入口,提供了打开、关闭数据库的接口,其

中openDb接口会创建一个Database对象。

Database

Database对象代表Mongodb里的一个db,其提供关于集合操作的所有接口,包括创建、删除、重命名集合,创建Database时会根据mongod进程的storageEngine配置来决定使用哪个存储

引擎。

Collection

Collection代表Mongodb里的一个集合,其提供关于文档增删改查的所有接口,这些接口最终会调用RecordStore里的相应接口实现。

æ ´å¤ ç²¾å½©æ »ç ¥è®¿é ®http://1

会调用RecordStore里的相应接口实现。

GlobalEnvironmentMongoD

GlobalEnvironmentMongoD是mongod的全局运行环境信息,所有的存储引擎在启动时会先

注册,mongd根据配置设置当前使用的存储引擎; 注册引擎时,提供引擎的名字(如mmapv1、wiredTiger)及用于创建引擎对象的工厂方法(工厂实现create的接口,用于创建StorageEngine 对象)。

StorageEngine

StorageEngine定义了一系列Mongdb存储引擎需要实现的接口,是一个接口类,所有的存储引擎需继承这个类,实现自身的存储逻辑。 getDatabaseCatalogEntry接口用于获取一

个DatabaseCatalogEntry对象,该对象实现了关于集合、文档操作的接口。

MMAPV1StorageEngine

MMAPV1StorageEngine包含了mmapv1存储引擎的所有实现逻辑。KVStorageEngine

KVStorageEngine实际上不是一个真正存储引擎的实现,只是为了方便接入wiredTiger、rocks等KV类型的存储引擎而增加的一个抽象层。 KVStorageEngine实现了StorageEngine的接口,但其实现由KVEngine类代理,wiredTiger等KV存储引擎接入mongdb时,只需实现KVEngine

定义的接口即可。

WiredTigerKVEngine

WiredTigerKVEngine继承KVEngine,实现KVEngine的接口,其他的引擎如RocksEngine

类似。

æ ´å¤ ç²¾å½©æ »ç ¥è®¿é ®http://2

Mongodb多存储引擎支持机制.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219