phxpasox项目分析
添加调试功能
为了能够单步调试,需要修改tools目录下的create_makefile.py文件
修改添加 -g
makefile.write(“CPPFLAGS+=$(%s) -g\n\n” % extra_cpp_flag_name)
然后
build.sh
make clean
make
make install
// 还需要重新编译plugin
然后编译运行sample,就可以使用调试程序调试了
phxecho 启动过程分析
基础类
- PNode
class PNode : public Node
{
public:
... ...
private:
// 多个Group的列表
std::vector<Group *> m_vecGroupList;
// 每一个Group对应的Master
std::vector<MasterMgr *> m_vecMasterList;
//
std::vector<ProposeBatch *> m_vecProposeBatch;
private:
MultiDatabase m_oDefaultLogStorage;
DFNetWork m_oDefaultNetWork;
NotifierPool m_oNotifierPool;
nodeid_t m_iMyNodeID;
};
每一个PNode都包含多个Group,每一个Group都有一个对应的Master和ProposeBatch。
DFNetWork表示默认网络,也就是NetWork类,实现了基于事件的异步回调机制。
- Group
class Group
{
public:
..