Paxos理解之我见

公元2015年的某个晚上9:30左右,理解透了Paxos算法思想,豁然开朗,醍醐灌顶。
之前困扰已久的分布式内存数据一致性的问题,有好的解决思路了。
心情高兴,从公司回去后,已经接近十一点了。在满大街找饭吃的过程中,又开始了新的思考。



思考分布式内存中数据一致性的问题,是为了解决海量并发场景的。
那么Paxos算法很巧妙地解决了,在正常的网络通信环境,网络抖动,丢包不可能完全避免的情况下,分布式数据一致性和集群通信。
现在问题又来了,Paxos算法能不能提高集群的并行运算能力呢,像nginx、LVS的负载均衡一样,集群的并行计算能力,跟机器数成正比?



想到这里,我向饭馆老板,要了张纸和笔,开始演算。演算一次我认为,随着集群机器数的增加,集群的并行计算能力也会随着提高的。
反复演算几次之后,我得出了最终的结论, 在网络通信的时间与处理事务所化时间相比可以豁略的前提下,随着运用Paxos集群机器数的增加,
集群的并行计算能力不会随之递增的,并行能力在理论上始终游荡在2和3之间。本以为经典Paxos的简化思想,解决了既要保证内存共享一致性的同时,
又要速度快的大难题。没想到只是解决了一半。



吃完这好不容易找到的晚饭,回到住处躺倒床上,一看手机,时间已经过了凌晨。又开始思考:一、分布式动态内存共享的一致性还有一半未解决。
二、即使上一个问题完全解决,最终是要保存到持久层的(数据库)。当海量请求到达后,内存的一致性问题不会成为瓶颈了,但是对数据库的写入操作又成了瓶颈了。
现在假设第一个问题完全解决,现在对数据库的写入操作又成了瓶颈。
既然第一个问题是为了缓冲解决数据库读写操作效率太低的,那持久层(数据库)为什么不用Paxos算法,保证一致性呢,这样一来,内存不需要做共享了,直接扔掉,因为Paxos的性能可以让数据库读写操作效率变高。
人总是这样,想出一个好点子之后,总是不愿意舍弃原来的愚蠢。想在问题只有一个了,那就是如何分布式持久层在保证一致性的同时,如何提高集群的并行计算的能力。
即Paxos如何提高集群的并行计算能力。
到这里,之前困扰的大难题又往前推进了一大步,想到这多少还是有点小兴奋。时间已经快凌晨3点了,虽然意愿上不想睡,但是大脑已经没电了。进入梦乡。。。



醒来是周六的15:00。在床上眯瞪了半个小时,起床来公司把昨晚的思路整理一下。周末的健身计划又泡汤了,不过也好,省得再想上周那样,一个不注意,速度调到了20,在跑步机上摔了个跟头。
现在只剩下最后一个问题了,那最后一个问题解决了没有。 Paxos如何提高集群的并行计算能力。Paxos的详细介绍,在下一篇将会讲述,欢迎大家讨论。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值