phxpaxos项目分析

本文详细分析了phxpaxos项目的调试功能添加方法,包括在create_makefile.py中修改添加-g以支持调试。同时,深入探讨了phxecho的启动过程,从基础类如PNode、Group、Instance到核心的Network类,阐述了其异步回调机制。文章还指出了现存的问题,如代码中Master的含义、BreakPoint的作用以及StatMachine和IOloop的功能,引发思考。
摘要由CSDN通过智能技术生成

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:
   ..
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值