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