分类目录归档:Algorithm

再谈Raft

正如Raft论文作者所说,鉴于Paxos协议晦涩难懂,算法本身与工程生产实践应用相距甚远,实现起来难度非常大,开源实现也少,从而以清晰易懂和工程实现较容易为目标提出了能够达到与(multi-Paxos)协议同等效果的Raft一致性协议算法,而且在强化leader角色、leader选举、成员管理等方面更清晰明确,整体上更优于Paxos或其它一致性协议算法。
阅读全文

也谈Paxos

Paxos算法用来解决什么问题?我理解的用抽象一点的语言解释,paxos算法的过程就是多方统一认知,达成共识,形成决议的过程;用算法本身的形式化运行过程解释,就是多个节点如何选定某个确定的值(一致性);分布式系统中就可以做到保障高可用性(容忍少数失败或故障)的同时,达成一个一致决议,就可以应用于这些场景:多副本一致性、数据库日志强一致同步(节点日志的顺序确定)、选主(谁成为主)、成员管理或配置变更等。
阅读全文

排序在Hadoop MapReduce中的应用

对于大多在应用层面写MapReduce job的童鞋,不论写streaming/pipes,还是java,通常认为hadoop MR计算框架对数据排序发生在reduce阶段,这也是应用层面最直观易见的,实际在map阶段也有排序操作,笔者以此文分别分析map和reduce两个阶段的排序,处理大数据时所采用的排序算法,以及排序所起到的作用。
阅读全文