![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
分布式系统
文章平均质量分 90
liangximin2046
学生
展开
-
Paxos算法论文总结
1 介绍之前通过MIT6.824课程,我对Raft算法有了深度的理解,自然而然地也就对被誉为“世界上唯一的一致性算法”的Paxos产生的兴趣,这篇文章就是阅读算法论文后的总结。我阅读的文章是Paxos Made Simple,可以在这里阅读。同时这篇博客的图片以及部分内容参考了这篇博客。2 算法2.1 一致性算法面临的问题...原创 2021-08-12 14:51:31 · 512 阅读 · 0 评论 -
2021 MIT 6.824 Lab2D Raft算法(四):日志压缩(log compaction)【完】
0 前言经过前面三个lab我们实现了raft算法的选举(leader election)、日志复制(log replication)与持久化(persist)的功能,在最后一个lab将实现日志压缩(log compaction)。日志压缩的诞生出于这样的考虑:在我们前面所有的代码中,日志均存在内存里,然而如果一台服务器是24×\times× 7地工作,某些时刻日志将会把内存撑爆,而且日志很多的话,持久化的时候也需要很多的IO操作时间,所以要引入日志压缩技术让服务器丢弃一些日志节省内存。所以使用什么技术丢弃原创 2021-05-25 19:11:10 · 2133 阅读 · 8 评论 -
2021 MIT6.824 Lab2C Raft算法(三):持久化(persist)
0 前言在Lab2A,2B里面,我们实现了Raft的leader选举和日志复制。在2C中,需要实现Raft的持久化功能(persist)。对于一个Raft节点服务器来说,当宕机重新启动的时候,它必须恢复到宕机以前的状态。论文Figure2中提到了需要持久化的状态:currentTermvoteForlogs(全部)Lab2C的主要关注点就是通过实现持久化,进一步提高系统的容错性。当然考虑到课程要求,这里就不上代码了。1 具体思路Lab2C的实现其实不太难,主要是要实现两个函数:Read原创 2021-05-13 11:31:24 · 1239 阅读 · 0 评论 -
2021 MIT6.824 Lab2B Raft算法(二):日志复制(log replication)
0 前言在之前的博客中实现了完成了Lab2A,raft的leader选举。这一篇博客讲述Lab2B,日志复制的内容。首先说一下总体感受,这是一个细节爆炸的实现,对论文理解稍有偏差就会导致测试不能通过,所以建议写码之前多读两遍论文,同时阅读一下课程助教写的guide,里面有一些常见的往年学生踩过的坑。如果还是有困难的话,可以参考一下这篇博客,写得确实很棒。下面说一下算法实现,当然,由于课程有要求,这里就不上代码了。1 概述之前也提到过,raft是基于复制状态机的,每一个服务器存储一个包含一系列指令的日志原创 2021-05-09 20:20:47 · 1023 阅读 · 0 评论 -
2021 MIT6.824 Lab2A Raft算法(一):选举(leader election)
0 前言Raft算法是一个有名的分布式一致性算法,论文点此处可以找到。6.824的Lab2将分为三个小lab实现这个算法。这篇博客将介绍Lab2A的内容,那便是raft的leader选举。Raft是基于复制状态机的算法,在一个系统中有唯一的一台机器是leader,剩下的机器是follower,follower根据leader的命令更新自己的状态。raft选举算法解决的问题是:当出现leader宕机或是网络不稳定的情况,能够正常的选举出leader并能保证出现问题的机器重新上线时系统能正常容纳它,以下的文章原创 2021-04-29 20:21:33 · 903 阅读 · 0 评论 -
2021 MIT6.824 Lab1 MapReduce算法总结
提示完成lab的一种可行的步骤是:首先修改mr/worker.go的Worker函数,实现的功能是向master领取一个任务,然后实现master的功能,返回一个文件名称作为未开始的map task,然后再让worker读取返回的文件名称调用Map函数map和reduce函数在对应的.so文件里,这个看看代码就懂了在本lab中,所有worker进程共享一个文件系统,也就是说所有worker是跑在同一台机器上的。如果说worker是在不同的机器上,我们就需要GFS这种分布式文件系统了worker的m原创 2021-04-23 14:50:27 · 2752 阅读 · 0 评论