再谈Raft 发表评论 正如Raft论文作者所说,鉴于Paxos协议晦涩难懂,算法本身与工程生产实践应用相距甚远,实现起来难度非常大,开源实现也少,从而以清晰易懂和工程实现较容易为目标提出了能够达到与(multi-Paxos)协议同等效果的Raft一致性协议算法,而且在强化leader角色、leader选举、成员管理等方面更清晰明确,整体上更优于Paxos或其它一致性协议算法。阅读全文
也谈Paxos 发表评论 Paxos算法用来解决什么问题?我理解的用抽象一点的语言解释,paxos算法的过程就是多方统一认知,达成共识,形成决议的过程;用算法本身的形式化运行过程解释,就是多个节点如何选定某个确定的值(一致性);分布式系统中就可以做到保障高可用性(容忍少数失败或故障)的同时,达成一个一致决议,就可以应用于这些场景:多副本一致性、数据库日志强一致同步(节点日志的顺序确定)、选主(谁成为主)、成员管理或配置变更等。阅读全文
rocksdb读/写/空间放大分析 发表评论 rocksdb基于Log-Structured Merge (LSM) Trees,分析rocksdb存储引擎的读写空间放大比例,即主要对LSM Trees结构进行分析,相关基础概念以论文A Comparison of Fractal Trees to Log-Structured Merge (LSM) Trees中的定义为准。阅读全文
我所理解的double array trie实现 1条回复 double array trie,字典树(trie)结构的一种高效实现方式,与传统字典树相比,压缩存储更省空间,精巧的状态机设计访问更快速,数组线性存取对缓存也更友好,不足之处主要在于构造(插入)过程中冲突解决稍复杂、缓慢。阅读全文
排序在Hadoop MapReduce中的应用 发表评论 对于大多在应用层面写MapReduce job的童鞋,不论写streaming/pipes,还是java,通常认为hadoop MR计算框架对数据排序发生在reduce阶段,这也是应用层面最直观易见的,实际在map阶段也有排序操作,笔者以此文分别分析map和reduce两个阶段的排序,处理大数据时所采用的排序算法,以及排序所起到的作用。阅读全文