/Distribution-System

分布式系统学习

Primary LanguageGo

分布式系统

分布式论文的理解以及论文的实现

  • 对论文进行了更加容易理解的翻译,对文章进行了更好梳理
  • 依托于6.824,对部分论文进行了Go实现 本人非科班出身,如果有错误望指正(个人邮箱yushuai@wustl.edu)
Module Abstract
Golang Thread基础知识
  • 1:先熟悉golang的threads的特性。 2: 对Goroutines的理解。
  • 3:锁的作用.
  • 4:channel的作用。
Mapreduce论文
  • 1: MapReduce是一个主要用于处理大量数据的集的一种programming model。 2: 它主要用了map function来处理记录key/value pairs,接着利用reduce function聚合压缩key/value pairs.
  • 3:这篇文章主要通过理解英文版的论文+整合网络资源+自我的理解来描述MapReduce的。
  • 4: 1基本思路+2如何应用+3必要的改进。
GFS论文
  • 1:GFS是一种scalable的分布式文件系统,其主要用处是管理数据。
Raft1
  • 1 Raft是一致性算法来管理replicated log,它可以产生类似于(multi-)Paxos的结果。 2: 它的结构跟Paxos不一样,它具有更好的可读性。
  • 3:它分开了关键因素比如leader election,lop replication, and safety。
Raft2
  • 1 raft的安全性和集群成员变更
Raft3
  • 1 对raft的Log compaction和Client interaction进行解释,同时对raft算法进行Evaluation。2: Raft全文的一些问题进行了集中总结Raft疑问总结

代码实现

  • MapReduce MapReduce实现

  • 1 该篇在结合6.824课程的内容,以其框架内容为依托,用Go实现了MapReduce.

  • 2 主要实现了串行,并行实现MapReduce,同时写了如何处理Woker failure的方法。

  • 3 同时它在廉价的商用硬件的情况下可以有很好的fault tolerance,并且可以给大量用户提供服务。

  • Raft1实现(Golang) Raft1实现| Raft2实现| Raft3实现

待完成

  • Fault-Tolerant Virtual Machines 论文