Paxos Made Simple 读后感-alburt
2.Paxos的基本原理是什么
acceptor 接收者，接收者接收到来自其他的proposer的提案，并按照一定的逻辑决定是否接收当前的提案，也就是是否接收request并准备执行request的角色。
learner 学习者，能够从其他节点获取某个被共识之后的提案。
2.1 paxos解决的问题 假设有n个独立的进程分别能够提出一个值，那么pasos算法用于保证这些进程提出的值的其中之一能够被正确处理。
paxos算法的安全性前提条件为:
只有被提议的值才有可能被选中，也就是说不可能有凭空出现的值出现;
一次只有一个值会被选中;
进程不会learn到一个没有被选中的值;
pasox算法的关键也就是对这种
为了保证其一直性，paxos给出一系列的接收提案的规定及其推论:
P1这个会引起另外一个问题:也就是每个进程接收到的提案顺序不一样，这会造成整个系统的不一致
P2: If a proposal with value v is choosen, then every higger-numbered proposal that is choosen has value v.(如果某个值v在num k的时候被选中，num 大于k的Proposal中能够看到之前选中的v的值)
由P1和P2可以得出一个 提案提交 的算法:
某个节点上的Proposer提出一个新的proposal num k，并发送到其他一定数量的acceptor，让其保证一下两点:(这被称为 PrepareRequest(n) n是request的序号)
不在接收proposal num <k的提案;
proposal num 小于k的所有提案已经被accept了;
如果该Proposer接收到来自大多数的节点对1中的PrepareRequest的回应，那么Proposer会选择Responses中的最大的proposal提案序号，如果responders没有改提案号，Proposer就会自己随机选择一个并和之前的k一起发送 AcceptRequest(n, v) 到acceptors;
2.2.2 Proposal 与Acceptor之间的交互流程
Proposer节点在阶段一之后等待Acceptor节点的返回，当接收到大于Quorum数量的相应之后，向Acceptor节点发送Accept(n,v)消息。
n即Prepare中的序列号，v = (Acceptor返回的其最大的accepted 的序列号)|| (Acceptor没返回的情况下，Proposer节点任意指定)
Acceptors收到Accept之后进行请求的具体执行
Paxos解决的问题:异步网络环境中，多进程之间操作的一致性
Paxos的前置条件有:
该算法只能够适用于系统中不包含拜占庭节点的情况;
该算法的正确性前提是系统中不能超过一半的机器出现问题;