随笔分类 -  phxpaxos

摘要: 阅读全文
posted @ 2022-05-04 13:24 stupidstan2019 阅读(27) 评论(0) 推荐(0)
摘要:1)问题 https://github.com/Tencent/phxpaxos/issues/52 m_bCanSkipPrepare只要在这一轮prepare有半数通过就会置为true m_bWasRejectBySomeone就是这一轮提交中没有被其他参与者拒绝过 直接进入accept 2)解 阅读全文
posted @ 2022-05-02 17:25 stupidstan2019 阅读(36) 评论(0) 推荐(0)
摘要:1)进程启动赋初值 从levelDb读取最大的值instanceId=28,但是这个值没提交 如果新产生的消息,会依然用28 2)acceptReply后++ m_llInstanceID++; 3)进程重启 echo打印只打印27,为什么不打印28? 待看,用learner模块来补齐漏洞? 阅读全文
posted @ 2022-05-02 17:01 stupidstan2019 阅读(75) 评论(0) 推荐(0)
摘要:1)调用栈 2)逻辑 从levelDb里读最后一条数据 再到logStore里从这里开始读,针对后面的重新做rebuild索引 阅读全文
posted @ 2022-05-02 15:35 stupidstan2019 阅读(36) 评论(0) 推荐(0)
摘要:1)可能接受多次同样的请求 offset = appendLog 覆盖更新leveldb(同一个instanceId,offset) 文件存储里存了冗余数据 2)删除逻辑 删除key和log文件 3)作者解释为什么存储和索引分离 https://github.com/Tencent/phxpaxos 阅读全文
posted @ 2022-05-02 12:00 stupidstan2019 阅读(39) 评论(0) 推荐(0)
摘要:【流程】 1)只有单副本场景 业务线程1阻塞再等待context.isCommited提交上 2)多副本场景 a) 在这里检查是多数派满足 b)满足之后设置commited状态 c) learner识别到提交,在控制台打印 【问题】 1.备机收到accept消息 本地持久化 给主机回acceptRe 阅读全文
posted @ 2022-05-02 10:12 stupidstan2019 阅读(40) 评论(0) 推荐(0)
摘要:1)一共9个线程 阅读全文
posted @ 2022-05-02 09:54 stupidstan2019 阅读(32) 评论(0) 推荐(0)
摘要:0)代码量 只有1300多行 db.cpp:800 log_store.cpp:800 paxos_log.cpp:150 system_variables_store.cpp:100 1)写逻辑 先把value写入logstore 再把key:valueOffset的位置写入leveldb,减小l 阅读全文
posted @ 2022-05-01 17:10 stupidstan2019 阅读(92) 评论(0) 推荐(0)
摘要:0)文件路径 /root/phxpaxos/sample/phxecho/logpath_127.0.0.1_11111/g0/vfile/0.f 100MB预分配好的 1)写一个1 log文件写47字节 2)会追加写三次 a)第一次 phxpaxos::LogStore::Append log_s 阅读全文
posted @ 2022-05-01 15:55 stupidstan2019 阅读(77) 评论(0) 推荐(0)