Skip to content

tisuama/6.824

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MIT 6.824 LAB

  • Lab 1: MapReduce
  • Lab 2: Raft
  • Lab 3: KV Raft
  • Lab 4: Sharded KV

Lab 1: MapReduce

Q1:Lab1比较简单,分别实现Worker.goMaster.go里的代码逻辑就行,主要讲一下超时机制,也就是在crash条件下,worker可能无法完成工作的情况?

解决思路是:在Master里起一个协程manager_unfinish,里面有一个类似于UnMapWorkchannel, MasterWorker分配任务的时候顺便将任务id 同时push到这个channel中,manager_unfinishchannel收到任务id后就另外起协程map_time_alert,它们的工作是先计时10s,然后看对应的 Worker是否完成并返回,否则就讲此任务id再一次pushMapWorkchannel中,继续分配任务。Reduce也是同理。

mapreduce

Releases

No releases published

Packages

No packages published