PhxPaxos
小埋汰0919
这个作者很懒,什么都没留下…
展开
-
PhxPaxos源码解析(1)之概述篇
写在前面的话 年前工作的间歇期计划学一些优秀的开源代码充充电,侧面打听到微信团队开源的Paxos源码在微信内部有大量的线上应用加之自己对Paxos之前的理解并不算深刻,所以想借着这个机会彻底搞懂它。年后回来趁着还“热乎"整理成系列文章巩固一下记忆。 为什么选择PhxPaxos作为学习Paxos的源码,这就涉及到优秀开源项目的标准。个人理解优秀的开源项目需要具备以下几点: 经过大量的生产环境验证...原创 2019-03-05 02:55:16 · 1158 阅读 · 0 评论 -
PhxPaxos源码分析之(2)提案申请篇
核心思想 在正式执行Paxos协议进行确定最终提案之前,需要先进行一些控制保证提案有序的进行。本部分的核心是提前发起量的控制,首先,在同一个节点上提案需要按顺序进行发起不能前一个提案还没有结束就进行下一个,这个比较好理解。其次,不能来了的提前请求都接受,如果并发量过高就会处理不过来也是不行的。下面重点看一下提案发起前的一些控制逻辑。 时序图 主要代码逻辑: 1. 由Commiter发起提案...原创 2019-03-06 01:01:39 · 926 阅读 · 0 评论 -
PhxPaxos源码分析之(4)Learner篇
本篇文章介绍一下PhxPaxos-Learn的过程,Learn主要的功能是追数据,追数据分为两部分,如果数据差距过大进行批量追加即ckpt(下片文章介绍),本篇文章主要介绍差距没有超过设定的闸值时,追条数据追加的过程。 PhxPaxos在追数据的过程模拟了TCP的三次握手和ACK机制,下面看一下简单的示意图: 有了上面主要流程的示意图,下面看一下时序图: 接下来分三个阶段进行介绍: ...原创 2019-03-08 19:20:16 · 740 阅读 · 3 评论 -
PhxPaxos源码分析之(3)提案发起篇(Paxos协议核心)
本篇内容根据Paxos协议分五部分介绍,即发起Prpare请求、给Prepare请求投票、收集Prepare投票,接收Accept请求 && 统计Acceot结果、Learn阶段,最后总从InstatnceID维度再次理解一下Mutil-Paxos协议,内容比较多。 接上篇提议申请成功之后调用AddNotify通知主循环发起提案,主循环收到通知之后调用CheckNewValue,...原创 2019-03-07 21:19:28 · 673 阅读 · 0 评论