1 Star 0 Fork 6

Mark_2020 / MIT6.824

forked from tantexian / MIT6.824 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

本项目主要针对自己对MIT6.824课程学习和翻译的记录,也方便后续其他学习者作为参考。

有些内容也会记录在博客网址:https://my.oschina.net/tantexian/blog

MIT6.824网址

6.824: Distributed Systems

Spring 2017 TR1-2:30, room 54-100

6.824是麻省理工学院的、关于分布式系统的编程实验课程。主要包括容错、复制、一致性等内容,总共包括23次课,4次试验及2次考试。

左上角链接补充解释:

  • Information:课程的介绍。
  • Schedule:课程表安排,安排了第1课到23课的排课日期及每次课程教授的内容及课程内容介绍和考试(包括提前需要准备的基础知识及布置的作业)。
  • Submissions:课程答题入口,注册自己的账号。
  • Labs: 1 2 3 4:表示本次课程需要完成的四个实验。
  • Questions:问答。
  • Past Exams:往年考试试卷及答案。
  • 2000 Web Site - 2016 Web Site:2000年-2016年以往6.824课程网址。

学习入门:

该课程的学习入口:Schedule入口 开始学习LEC1-LEC23以及课程学习资料。

入门开始(必读):

首先下载源代码[git仓库地址](git://g.csail.mit.edu/6.824-golabs-2017 6.824),且配置好该源代码src路径到GOPATH中。


设置linux环境下gopath(windows类似):

vim ~.bash_profile

 export GOROOT=/home/go
 export PATH=$GOROOT/bin:$PATH
 export GOPATH=/home/gopath:/home/gopath/src/git.oschina.net/tantexian/MIT6.824/6.824-golabs-2017
 alias cdgo='cd /home/gopath/src'
 alias cdmit='cd /home/gopath/src/git.oschina.net/tantexian/MIT6.824/6.824-golabs-2017/src'


第一次课程学习顺序及相应课程资源:

  1. LEC 1: Introduction
  2. Preparation: Read MapReduce (2004)     原始资源:MapReduce论文英文文档
  3. Assigned: Lab 1: MapReduce

本次课程学习了MapReduce的论文及简单版本mapreduce相关实现。

第2次课程学习顺序及相应课程资源:

  1. Lecture 2: Infrastructure: RPC and threads
  2. Crawler
  3. K/V
  4. 阅读A Tour of Go
  5. go-faq.txt
  6. 扩展资源:Effective Go中文版.pdf
  7. 扩展资源:Golang内存模型(官方文档中英文翻译)
  8. 扩展资源:Golang数据竞态检测(官方文档中英文翻译)

本次课程主要学习了Go语言的基础知识、并发编程、RPC示例。以及“at least one”,“at most one”分布式系统设计要素及重难点。

第3次课程学习顺序及相应课程资源:

  1. l-gfs-short-zh_cn.md
  2. Lecture 3: GFS论文     原始资源:GFS论文英文文档
  3. gfs-faq-zh_cn.md
  4. raft-zh_cn.md     原始资源:raft论文英文文档
  5. 6.824_Lab_2_Raft-zh_cn.md

本次课程主要学习了GFS论文,及raft扩展论文及实现Raft实验。


如果有对应翻译文件,则链接到对应翻译地址,否则链接到mit网站地址,也可以直接在本项目对应课程目录下本地查看全部资源!

翻译文档全部以zh_cn.md结尾。

GOPATH环境配置:

为了能够让6.824代码中能够正确导入对应的源码路径,因此本示例中将源码路径:C:\Users\ASUS\Desktop\dev\GOPATH\src\git.oschina.net\tantexian\MIT6.824\6.824-golabs-2017添加到GOPATH中


关于代码编写规范:

如何开始?


开发规范必读

  • 源文件使用Unix换行、UTF-8文件编码
  • 请在git clone命令之前执行git config --global core.autocrlf false,确保本地代码使用Unix换行格式
  • 请在非主干分支上开发,禁止提交本地未测试运行通过代码到线上分支
  • 每次提交及之前(正常来说需要先pull --rebase,解决冲突),对代码进行修改必须有相对应的解释说明
  • 正常组内开发人员提交代码,需要经过经过审核后方可提交(且需要有统一格式注释,参照注释类型3)

注释规范

  • 对于注释,请遵照以下规范:
  • 注释类型1(适用于结构体或者包名注释)、
// 方法对象名 xxx
// Author: tantexian, <my.oschina.net/tantexian>
// Since: 2017/3/20 or v1.0.0 
  • 注释类型2(适用于功能确定的单行注释)、
// 由于是顺序消息,因此只能选择一个queue生产和消费消息
  • 注释类型3(适用于修改它人代码注释)、
// xxx  Modify: tantexian, <my.oschina.net/tantexian> Since: 2017/3/20 or v1.0.0 
// xxx  Add: tantexian, <my.oschina.net/tantexian> Since: 2017/3/20 or v1.0.0 
  • 关于TODO、FIXME、XXX注释规范(后续再加上)、
// TODO: + 说明:xxx Author: tantexian, <my.oschina.net/tantexian>  Since: 2017/3/20 or v1.0.0 

如果代码中有TODO该标识,说明在标识处有功能代码待编写,待实现的功能在说明中会简略说明。

// FIXME: + 说明:xxx Author: tantexian, <my.oschina.net/tantexian>  Since: 2017/3/20 or v1.0.0 

如果代码中有FIXME该标识,说明标识处代码需要修正,甚至代码是错误的,不能工作,需要修复,如何修正会在说明中简略说明。

// XXX: + 说明:xxx Author: tantexian, <my.oschina.net/tantexian>  Since: 2017/3/20 or v1.0.0 

如果代码中有XXX该标识,说明标识处代码虽然实现了功能,但是实现的方法有待商榷,希望将来能改进,要改进的地方会在说明中简略说明。

开发IDE


联系方式: 博客网址:https://my.oschina.net/tantexian/blog 邮箱:tantexian@qq.com

空文件

简介

http://nil.csail.mit.edu/6.824/2017/ 展开 收起
Go
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Go
1
https://gitee.com/mark_2020/MIT6.824.git
git@gitee.com:mark_2020/MIT6.824.git
mark_2020
MIT6.824
MIT6.824
dev

搜索帮助