
6.824
文章平均质量分 91
Bokk
Research and Development
展开
-
2020 6.824 的 Raft Lab 4B
前言做2020的MIT6.824,部分完成了实验 Lab4B(challenge部分没有写),通过了测试,对于之前的Raft实现的实验请参考Lab 2A, Lab 2B 和 Lab 2C 和 Lab 3A 和 Lab 3B 以及Lab 4ALab4需要实现一个分区的kv存储服务,其中Lab4A实现ShardMaster负责维护分区配置信息;这个Lab负责ShardKv,分别存储零至多个分区的数据,其中难点就是怎么使用多个raft实现分区储存服务。本文主要讲一下实现的思路,我也是参考了网上的很多做法,其原创 2021-01-19 20:05:07 · 674 阅读 · 0 评论 -
2020 6.824 的 Raft Lab 4A
目录前言一、Overview1.1 架构图1.2 架构细节二、client三、Master server3.1 属性3.2 构造函数3.3 Join/Move/Leave3.4 Query3.5 serverMonitor3.6 Load balance四、总结前言做2020的MIT6.824,完成了实验 Lab4A,通过了测试,对于之前的Raft实现的实验请参考Lab 2A, Lab 2B 和 Lab 2C 和 Lab 3A 以及 Lab 3BLab4A主要是做DB的分片,也就是Client向Se原创 2020-12-30 13:04:27 · 628 阅读 · 4 评论 -
2020 6.824 的 Raft Lab 3B
目录前言一、Overview1.1 流程图前言做2020的MIT6.824,完成了实验Raft Lab3B,通过了测试,对于之前的Raft实现的实验请参考Raft Lab 2A, Raft Lab 2B 和 Raft Lab 2C 以及Raft3ALab3B主要需要完成日志压缩的需求,以保证实用性以及性能上的需求。总的来说,这个实验需要改进的地方很多,尤其是我的代码其实之前一直上从index=0开始的,到这个实验卡壳才发现index=1,于是又修改了之前的Raft代码,然后才逐渐实现日志压缩的需求的。原创 2020-12-25 19:26:47 · 1423 阅读 · 1 评论 -
2020 6.824 的 Raft Lab 3A
目录前言一、Key/value Service1.1 流程图二、client1.1 arguments1.2 client属性1.3 client的Get/PutAppend请求三、Server1.1 server中的Operation Op1.2 server的属性1.3 kv.Get1.4 kv.PutAppend1.5 kv.getChannel1.6 StartKVServer1.7 kv.serverMonitor总结前言做2020的MIT6.824,完成了实验Raft Lab3A,通过了测试原创 2020-12-11 17:50:31 · 1163 阅读 · 4 评论 -
笔记 MIT6.824 Lecture 20: Blockstack
目录前言一、传统的web二、去中心化的web三、Blockstack3.1 naming3.2 outline总结前言讲了新的decentralized的网络架构Blockstack,自己拥有数据这个概念还是很新颖的一、传统的webData是存在server的数据库的,对于公司的server access data,没有restriction。这样数据是不安全的二、去中心化的web于是引入了去中心化的架构– 就是做app以及数据分离– user需要storage system去储存数据原创 2020-12-02 19:29:24 · 238 阅读 · 0 评论 -
笔记 MIT6.824 Lecture 18: Fork Consistency, Certificate Transparency
目录前言一、before certificates二、certificates三、Certificate Transparency (CT)3.1 how does Certificate Transparency (CT) approach this problem?四、Merkle Tree五、总结前言讲了证书透明度,通过audit增强认证。参考链接证书透明度什么是证书透明度一、before certificates容易有网络攻击DNS isn’t very secure, can f原创 2020-12-01 19:26:40 · 398 阅读 · 0 评论 -
笔记 MIT6.824 Lecture 17: COPS, Causal Consistency
目录前言一、geo-replication1.1 Spanner1.2 Memchche1.3 新的需求二、预备方案One三、预备方案Two四、COPS五、limitations总结前言主要讲了有一定consistency保证的情况下有很不错性能的DB方案Causal Consistency, 其中notion of dependency一定程度上解决了写在不同servers上异步的特点一、geo-replication1.1 Spanner– 通过Paxos保证强consistency– T原创 2020-12-01 18:33:26 · 416 阅读 · 0 评论 -
笔记 MIT6.824 Lecture 16: Cache Consistency: Memcached at Facebook
目录前言一、web application architecture二、Regin三、读写操作四、performance五、In one regin六、Consistency总结前言主要讲了cache在大型系统中的应用,涉及到了performance以及consistency一、web application architecture架构1开始单个server,front end, back end, DB但是访问量增加CPU的处理能力就会有瓶颈架构2多个前端servers, 一个后端/DB原创 2020-11-30 19:42:03 · 309 阅读 · 0 评论 -
笔记 MIT6.824 Lecture 15: Big Data: Spark
目录前言一、programming model二、execution strategy2.1 计算过程2.2 Execution三、Fault tolerance总结前言介绍了Spark,属于evolution of MapReduce,介绍了programming model,execution strategy & fault tolerance一、programming model**val lines = spark.read.textFile("in").rdd**读取文件,原创 2020-11-30 05:32:54 · 351 阅读 · 0 评论 -
笔记 MIT6.824 Lecture 14: Optimistic Concurrency Control
目录前言一、FaRM1.1 对比spanner1.2 setup1.3 how to get high performance1.4二、Optimistic Concurrency Control (OOC)2.1 原因三、commit的过程总结前言主要讲了乐观锁在分布式事务中的应用,重点在于理解paper的Figure4一、FaRM1.1 对比spannerFaRM的速度比spanner快很多(提升了100倍),FaRM的bottleneck是CPU timeFaRM在90台机器下能达到10原创 2020-11-29 20:05:31 · 626 阅读 · 0 评论 -
笔记 MIT6.824 Lecture 13: Spanner
目录前言一、Spanner1.11.2 Big challenges二、Read/Write Transactions三、Read/Only Transactions3.1 improve只读performance3.2 Correctness constraints on r/o transactions3.3 Snapshot isolation(SI)3.4 Time sync总结前言这个是在讨论了了Two Phase Commit(TPC)之后,Google的一个practice,应用了Paxo原创 2020-11-29 20:04:12 · 356 阅读 · 0 评论 -
笔记 MIT6.824 Lecture 12: Distributed Transactions
目录前言一、问题二、Concurrency control三、Distributed Transaction VS failures四、关于Two-phase commit总结前言这是Lecture12的上课记录,分布式事务,主要讲了两个话题,分别是Concurrency control以及atomic。重点是理解two phase commit,这个后面介绍的很多事务读写处理都有用到一、问题有大量的数据,需要分库,并且需要TransactionTransaction的特性 - ACIDAtom原创 2020-11-29 12:43:01 · 293 阅读 · 0 评论 -
笔记 MIT6.824 Lecture 11: Cache Consistency Frangipani
目录Lecture 11: Cache Consistency: Frangipani前言一、 Frangipani overview二、 Challenges来自去中心化带来的问题三、 Cache coherence四、Atomic multi-step operation五、Crash recovery六、总结Lecture 11: Cache Consistency: Frangipani前言这是Lecture11的上课记录,主要讲的是分布式文件系统通过cache提高性能的一个话题,设计到三大问原创 2020-11-28 11:43:56 · 377 阅读 · 0 评论 -
2020 6.824 的 Raft Lab 2C
目录前言一、Raft2C二、Persist()2.1 实现2.2 调用三、优化总结前言做2020的MIT6.824,完成了实验Raft Lab2C,对于之前的两个实验请参考2020 6.824 的 Raft Lab 2A 以及2020 6.824 的 Raft Lab 2B这个实验的重点在于实现persist()以及做优化。总的来说代码量比Lab2B要少,又沿用Lab2A已经搭好的框架,所以整体会比前两个实验简单一些这个实验的坑是TestFigure8Unreliable2C,这里有相关的讨论可以根原创 2020-11-25 05:50:11 · 1438 阅读 · 1 评论 -
2020 6.824 的 Raft Lab 2B
目录前言一、Raft2B二、SendHeartbeat2.1 框架2.2、发送部分的AppendEntriesArgs2.3、接收部分的处理2.3.1 成功处理2.3.2 失败处理2.4、最后, SendHeartbeat的实现如下三、 AppendEntries3.1 整体框架3.2 日志对比3.3 日志保存3.4 跟新commitIndex3.5 最后, AppendEntries的实现如下四、 其他一些相关修改4.1 start4.2 RequestVote跟新4.3 ApplyLog总结前言做原创 2020-11-21 13:51:57 · 1390 阅读 · 0 评论 -
笔记 MIT 6.824 Lecture4: Primary-Backup Replication
lecture 4 Primary-Backup Replication前言这是关于lecture4 的一些课堂记录paperFault-Tolerant Virtual MachinesNon-det eventsinput - packet - data + interupt :: interput 需要一致wired instructions多核cpu记录把输入和非确定性以日志流形式记录对于非确定性事件:记录发生时的具体指令Log entryinstructiont原创 2020-10-27 06:14:57 · 283 阅读 · 0 评论 -
2020 6.824 的 Raft Lab 2A
目录前言一、Raft流程struct二、选举实现三、心跳实现总结前言做2020的MIT6.824,刚刚开始了第二个实验,是Raft 2A,这个实验是实现不带log的leader election以及heartbeat,花了很多时间在理解paper上面,然后花了很多时间在debug上面。这个实验如果理解了Raft要干什么的话,难点就是避免deadlock。下面有几个链接对我的实验很有帮助,可以参考MIT对go/raft讲解的lecture并行运行测试大shellscript##每5个test并行原创 2020-10-26 18:23:04 · 1246 阅读 · 4 评论 -
2020 6.624 的 MapReduce
文章目录前言一、MapReduce二、Master1. 数据结构2.部分核心函数三、Worker部分核心函数总结前言做2020的6.824,刚刚开始了第一个实验,是MapReduce,这个实验难度(过测试)还行,前提是需要把要求理清楚。过程也是参考了网上好几个博客的,下面是我的solution一、MapReduce主要就是实现paper中提到的MapReducepaper 地址流程大概是这样的二、Master1. 数据结构Master只有有两个个数据结构, Master, Ta..原创 2020-10-15 18:05:00 · 228 阅读 · 0 评论