github 地址:https://github.com/rsy56640/Distributed_System_Learning/tree/master/MIT6.824/1st_learning/6.824/src
不难,但是对windows很不友好,,完全不能测试,还得搬到腾讯服务器上面,累成狗。。。
有几个坑,记录一下
- 命令行参数 “*” 在windows上没用
- Go还不熟练,容器的cap给多少,各种调用开销怎么算都没有大致的把握
- Go的基础工具库感觉比C++要好很多
- 做到RPC哪里发现 net.Listen全是 unix,心一横打算全网络调用全改成windows,最后越挖越深,,心态崩了,搬到腾讯云centos上测试了
- 论文中说doReduce的时候要排序,但其实既然reduce是commutative,我就直接从每个文件读出来,然后分到对应的key那里
- 其实真正的 schedule 完全没有讲,因为所有file都分散在不同的worker上,需要通过对这些file的分布进行一些计算,把task分到离file尽可能近的worker上
- centos真tm好用,ftp传过去就完事了