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

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

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

被折叠的 条评论
为什么被折叠?



