taskId string 任务id
filename string 文件路径
content string 任务补充参数
status int 任务状态
mapAns string map结果文件路径
reduceAns string reduce结果文件路径

Master

  1. 接收reduceNum以及任务列表
  2. 创建任务迭代器,当worker请求任务时,分发任务做map并更改状态为mapping
  3. 收到mapping成功响应,更改状态为mapped
  4. 当所有任务都在mapping或mapped状态时,worker请求任务时,按照reduceNum切分分配reduce任务,并更改状态为reducing
  5. 当reduce任务不足数量无法分配时,将当前正在mapping的任务再分配给其他worker(最多分给额外两个)
  6. 若当前无任务可分配,通知下次请求时间。

注:统计下mapping任务的平均耗时,空轮时间与此相关

Worker

  1. 请求拿到任务,调用worker对应方法,结束后通知成功,并继续请求任务。