mit6.824 2022

写在前面

个人主页www.jiasun.top
界面比CSDN简洁一点,阅读体验更好,现已将全部博客迁移到个人主页,欢迎关注!

两年前写过一次6.824,一直卡在2c没过去,就放弃了。当时只看了A Tour of GO,对GO也不怎么熟悉,现在看了一遍《Go程序设计语言》后再写一遍这些实验,锻炼一下GO语言能力。这篇博客只是简单记录一些实验过程中遇到的问题与收获,并不具备太多参考性。
lab地址:
6.824: Distributed Systems

优秀的博客/链接推荐:
如何的才能更好地学习 MIT6.824 分布式系统课程?
实效Go编程
raft_translation
raft可视化
Students’ Guide to Raft
Raft Q&A
Debugging by Pretty Printing
Lab guidance
Raft Locking Advice
Raft Structure Advice
SOFAJRaft 日志复制 - pipeline 实现剖析 | SOFAJRaft 实现原理
raft在处理用户请求超时的时候,如何避免重试的请求被多次应用?
一致性模型与共识算法
8.MIT 6.824 LAB 4B(分布式shard database) 西部小笼包

前期环境准备
运行环境:Windows vscode remote ssh + Ubuntu 虚拟机

git clone git://g.csail.mit.edu/6.824-golabs-2022 6.824  # 下载源码
apt install golang	# 安装go

由于我比较喜欢用fish,故直接在/etc/environment 设置各个环境变量

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/lib/go-1.13/bin"
GOROOT=/usr/lib/go-1.13
GOBIN=/root/mit6.824/6.824/bin
GOPATH=/root/mit6.824/6.824

由于想验证环境变量的有效性,故意写错路径名,使得PATH环境设置错误,没想到重启后输入密码登陆后又跳到登陆界面,后只能通过命令行页面暂时设置环境变量,通过vim修改/etc/environment内容才正常运行,所以请仔细设置环境变量!
Golang环境变量设置详解
Linux中设置和显示环境变量
ubuntu输入密码登陆后又跳到登陆界面解决方案
关于环境变量/etc/environment

vscode安装一些常用的go扩展,一直install失败,通过设置GOPROXY为https://goproxy.io,direct才成功安装。

go env -w GOPROXY=https://goproxy.io,direct

最简单解决VSCode中Golang插件依赖安装失败问题

MapReduce

MIT6.824 2022 MapReduce

Raft

MIT6.824 2022 Raft

Fault-tolerant Key/Value Service

MIT6.824 2022 Fault-tolerant Key/Value Service

Sharded Key/Value Service

MIT 6.824 Sharded Key/Value Service

写在后面

因为要忙其他项目,断断续续地写这几个实验,主要时间就花在了通过lab2b和lab4b上了,整体的难度lab2>lab4>lab3>lab1。通过这个实验,对go语言,raft算法,并发程序调试方面有了更深的理解,也让我熟悉了使用vscode进行debug。之前我要么使用vs自带的调试功能,要么使用gdb,没怎么用过vscode的运行与调试功能,确实挺好用的,可以方便地查看各个goroutine的状态。

找个时间优化一下各个实验的代码

通过截图

MapReduce在这里插入图片描述
raft部分
在这里插入图片描述
测试脚本

#!/bin/bash
for i in {1..100};
do
go test ./raft  --count=1 ;
go test ./kvraft --count=1 ;
go test ./shardctrler  --count=1 ;
go test ./shardkv  --count=1 ;
done

go test 禁用测试缓存

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 16
    评论
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

最佳损友1020

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值