openGuass的MOT执行流程:
1.postmaster中的GaussDbThreadMain<STARTUP>,调用相应的GaussDbAuxiliaryThreadMain
2.当线程类型是"STARTUP"时,执行StartupProcessMain:在这里执行InitMOT,初始化MOT的FDW
3.在InitMOT中,调用MOTAdaptor::Init(),初始化MOT的engine
4.以上初始化过程,在启动openGauss服务时完成.在postmaster的ServerLoop中会循环监听用户请求
5.当收到一个插入的请求时,经过解析后,传到FDW中,调用其MOTExecForeignInsert方法
6.FDW的MOTExecForeignInsert会调用MOT引擎提供的insert方法:即MOTAdaptor::InsertRow
7.MOTAdaptor::InsertRow首先创建一个新的row,table->CreateNewRow(),然后调用PackRow将
解析的数据添加到这个row中再 调用table->InsertRow,完成插入.这里会调用masstree,先不说了.
网友评论