240 发简信
IP属地:山东
  • @Lexus90511 1. 对于第二点不保留的问题还是有个疑问,按照楼主的解释,5台机器,两台follow收到了事务请求,并且返回了ack,加上leader本身一共三个同意者,这个事务应该被提交,leader在本地commit了,然后挂了。新选举出来的leader,发现只有两个机器有该日志,不提交事务。但是原先的情况是,这个事务应该被提交,新leader却没有提交,等到刚才挂了的leader恢复的时候,他的这个事务是提交的状态,客户端连接到这个机器时,能看到事务被提交的状态,但集群中其他机器并没有这个事务的提交,那么不导致了不一致么?
    2. 还有一个问题请楼主指教:客户端连接到某台follow,先执行写数据的操作,此时该操作会被发送到leader,然后原子广播事务提议,有半数follow同意了(假设这条写请求发送的follow由于某种原因没有没有同意),然后leader发送commit并让所有follow都commit(恰好发送写请求的follow又没有收到commit),然后返回写leader返回写成功,之后同一个客户端再读取这个数据,因为这个客户端连接的follow并没有最终提交前面的写事务,就导致了写后读不一致,这个问题怎么解决的?

    Zab:Zookeeper 中的分布式一致性协议介绍

    背景 在分布式系统中实现一致性是件有挑战的事。经典的二阶段提交、三阶段提交都不能完美的解决这一问题,有关传统的的分布式系统一致性问题可以看这里。Paxos 算法能完美地达到分...

  • 清明

    孤魂清明冷,人去留旧情。 凡尘缘了去,莫叹念阴灵。