Mongodb(2)——WiredTiger文件接口

本文探讨了MongoDB中WiredTiger存储引擎的文件系统抽象层,介绍其核心数据结构__wt_file_handle和__wt_file_system,并讨论了不同操作系统下具体的实现方式。

在wiredtiger.h中,定义了各种抽象数据结构,Mongo中WT的抽象层会调用这些抽象结构的函数调用。我们看看文件系统相关的两个抽象数据结构:__wt_file_handle,__wt_file_system。可以看到这里定义了一系列与文件相关的操作,而在不同的操作系统下,会有不同的具体实现对应。
1
2
例如在windows系统下,会调用windows的系统调用实现相应的接口。在具体配置时,会将函数指针一一对应。如下截图所示,在linux下也是如此。
3

在WT的初始化函数中会调用
4
深入发现,在wiredtiger_open中就会配置用哪一个实现。
5

[root@zqykj126 mongodb-4.0.27]# cp -r /usr/local/mongodb/db/ ./ [root@zqykj126 mongodb-4.0.27]# cd .. [root@zqykj126 software]# ll total 0 drwxr-xr-x 3 root root 126 Aug 21 09:42 mongodb-3.4.24 drwxr-xr-x 3 root root 135 Aug 21 09:30 mongodb-3.6.23 drwxr-xr-x 6 root root 188 Aug 21 09:57 mongodb-4.0.27 [root@zqykj126 software]# pwd /opt/software [root@zqykj126 software]# cat mongodb-4.0.27/mongodb.conf # 网络 net: bindIp: 0.0.0.0 # 绑定IP,如果此值是“0.0.0.0”则绑定所有接口,允许多ip绑定,用逗号分隔 port: 27017 # 监听端口,默认27017 # 存储引擎 storage: journal: # 数据操作记录日志 enabled: true # journal日志是否持久存储,通常用于数据故障恢复,建议开启 默认64位为true,32位为false dbPath: "/opt/mongodb-4.0.27/db" # 数据存储目录 engine: wiredTiger # 存储引擎类型,3.2前默认 mmapv1,3.2后默认WiredTiger wiredTiger: # 存储引擎配置 engineConfig: cacheSizeGB: 25 # 最大缓存大小256~10TB,3.4版本开始wridTiger默认:50%RAM减去1GB # 日志 systemLog: destination: file # 日志输出目的地,可为file或syslog,不指定会输出到标准输出 path: "/opt/mongodb-4.0.27/logs/mongodb.log" # 日志路径 logAppend: true # 追加日志还是新建日志 logRotate: reopen # 日志轮询。默认值rename;reopen前提为 logAppend: true # 进程管理 processManagement: fork: true # 是否以守护进程运行,默认false # pidFilePath: "/home/middle/mongodb/run/28001.pid" # 将mongod进程ID写入指定文件,默认不会创建 # 安全 security: authorization: "enabled" # MondoDB认证功能,默认disabled # 参见MongoDB——配置文件详解:https://www.cnblogs.com/hanease/p/18691726 [root@zqykj126 software]# 我的mongodb数据是3.2.9的 现在你通过这些版本 逐个帮我升级 步骤一步一步写 不需要整理脚本
最新发布
08-22
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值