论文链接 ZooKeeper: Wait-free coordination for Internet-scale systems
1 背景 大规模的分布式应用需要不同形式的协调机制,第一是最基本的基于配置的协调形式,第二是组成员关系和领导选举机制,第三是锁能实现原子性操作,控制临界区的访问。一种解决方案是将调度机制开发不同的服务,例如部分服务使用队列,部分服务使用领导者机制。ZooKeeper是一种提供API的方法为程序开发者提供原语,通过协调内核能够在不改变服务核心支持新原语。
论文链接 In Search of an Understandable Consensus Algorithm (Extended Version)
1、背景 共识算法是指能够让一组机器在一起协作并且能够容忍部分机器的故障。过去几十年,Paxos是最主流的共识算法,但是它较难理解,在现实中使用需要考虑到很多复杂的变化。于是提出了一种Raft的共识算法,其用于教学和实现更加简单。经过实验测试,在两个大学中对43个学生进行教学,有33个能够较好的理解并回答关于Raft的问题。
论文链接 MapReduce: Simplified Data Processing on Large Clusters
1 背景 2004年正处于互联网起步阶段,谷歌公司为了处理大量的元数据(文档、日志、摘要)需要成百上千台机器处理。这时需要设计一个程序,能够让分布在不同位置的机器并行处理分布式的数据,同时要有容错,简化计算的代码。受到Lisp语言中函数式编程的启发,创造了map和reduce两种操作来处理输入数据。