![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
分布式
文章平均质量分 95
李兆龙的博客
Distributed Systems & NoSQL & Linux Kernel / eBPF & Chaos Engineering
展开
-
凝望深渊,并发控制的尽头
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。本作品 (李兆龙 博文, 由 李兆龙 创作),由 李兆龙 确认,转载请注明版权。文章目录引言并发方案多核的实验环境相关优化算法无关优化2PL算法相关T/O算法相关相关分析Read-Only WorkloadWrite-Intensive WorkloadWorking Set SizeRead/Write Mixture一些有趣的结论多核与分布式系统总结引言随着数据库领域的蓬勃发展,并发控制算法也有了长足的进步,从悲观原创 2021-10-16 14:16:00 · 642 阅读 · 1 评论 -
Facebook技术探究:Delos中的虚拟共识机制
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。本作品 (李兆龙 博文, 由 李兆龙 创作),由 李兆龙 确认,转载请注明版权。文章目录引言Delos细节总结引言这篇文章是对OSDI 2020 Virtual Consensus in Delos 的论文演讲以及论文的学习与思考,这篇文章中提出一种称为虚拟共识分层的思想。Delos首先我们来了解下Delos出现的背景。Facebook的软件栈分为数据平面与控制平面,控制平面需要处理大量的数据,对于控制平面来说原创 2021-10-08 18:17:24 · 643 阅读 · 0 评论 -
关于Raft算法中lease read正确性相关的探讨
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。本作品 (李兆龙 博文, 由 李兆龙 创作),由 李兆龙 确认,转载请注明版权。引言参考:https://github.com/etcd-io/etcd/issues/741https://etcd.io/docs/v3.5/learning/api_guarantees/https://groups.google.com/g/golang-china/c/-Lb8p1Zaz3chttps://segmentf原创 2021-10-01 23:14:41 · 1457 阅读 · 0 评论 -
Multi-Raft在TiKV中的实践:Split与Merge
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。本作品 (李兆龙 博文, 由 李兆龙 创作),由 李兆龙 确认,转载请注明版权。文章目录引言Region epochSplit触发时机split_checker_workerPD调度执行过程otherMergePrepareMergeCommitMergeother总结引言单一的Raft算法我们必然无法去承载极大规模的数据,因为所有的数据都需要排队,然后走一遍Raft的流程,我们无法做到多个操作之间的并行执行,所以Mu原创 2021-09-18 20:02:06 · 1297 阅读 · 0 评论 -
TiKV事务模型探究:Percolator
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。本作品 (李兆龙 博文, 由 李兆龙 创作),由 李兆龙 确认,转载请注明版权。文章目录引言PercolatorTiKV中的应用Column Family读放大Latches缺陷总结引言TiKV是Google Spanner的一个开源实现,其作为HTAP(Hybrid Transactional and Analytical Processing)数据库TiDB的行存储引擎,以支持对OLTP(On-Line Trans原创 2021-09-16 13:40:01 · 1027 阅读 · 0 评论 -
Braft编译与使用
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。本作品 (李兆龙 博文, 由 李兆龙 创作),由 李兆龙 确认,转载请注明版权。文章目录引言example:block引言这篇文章的目的在于记录Braft使用中一些API的具体含义,虽然有官方文档,但是还是感觉有点简略。运行并学习了代码以后和当时仅仅查看文档完全是两个不同的感受,遂简单记录下用到的一些接口。并引入一个官网的例子来了解Braft的实际执行过程。文章首先描述一个使用Braft的样例,然后总结重要的API以原创 2021-05-12 20:39:47 · 2405 阅读 · 0 评论 -
Copysets: Reducing the Frequency of Data Loss in Cloud Storage
文章目录ABSTRACT1. INTRODUCTION原文链接ABSTRACT随机复制广泛应用于数据中心存储系统中,以防止数据丢失。但是,在由于集群范围内的电源中断而同时发生节点故障的常见情况下,随机复制几乎肯定会丢失数据。由于每次数据丢失事件的固定成本很高,许多数据中心运营商倾向于将此类事件的频率降到最低,而代价是在每次事件中丢失更多数据。我们介绍了Copyset复制,这是一种新的通用复制技术,可显著降低数据丢失事件的频率。我们在两个开源数据中心存储系统HDFS和RAMCloud上实现并评估了Cop翻译 2021-05-07 19:55:15 · 501 阅读 · 1 评论 -
HotRing: A Hotspot-Aware In-Memory Key-Value Store
Abstract内存中键值存储(KVS)广泛用于缓存热数据,以解决基于磁盘的存储或分布式系统中的热点问题。但是,内存KVS内部的热点问题却被忽略了。由于近来热点问题变得更加严重的趋势,现有KVS中缺乏热点意识,这使得它们的性能不佳且对高度倾斜的工作负载不可靠。在本文中,我们探索了KVS中内存索引结构的热点感知设计。我们首先分析理想的热点感知索引可能带来的好处,并讨论有效利用热点感知的挑战(即热点转移和并发访问问题)。基于这些见解,我们提出了一种名为HotRing的新型热点感知KVS,该KVS已针对大规模并翻译 2021-03-31 23:13:02 · 728 阅读 · 0 评论 -
聊聊块存储、文件存储、对象存储
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。本作品 (李兆龙 博文, 由 李兆龙 创作),由 李兆龙 确认,转载请注明版权。文章目录引言区别关系与结构化数据,非结构化数据,半结构化数据的区别如何选择总结引言这三个名词我相信了解过存储相关知识的朋友都不陌生,作为主要的三种数据存储方式,我想我们需要对它们之间的优劣势以及适用场景进行一些有效的思考。犹记得以前讨论过结构化数据,非结构化数据,半结构化数据的区别[3],那么我们这篇文章讨论的块存储、文件存储、对象存储和原创 2021-03-27 22:14:01 · 889 阅读 · 1 评论 -
聊聊Raft的性能优化
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。本作品 (李兆龙 博文, 由 李兆龙 创作),由 李兆龙 确认,转载请注明版权。文章目录引言优化策略Append Log与日志存储的并行化Batching & Pipelining复用连接日志压缩的分片心跳包合并日志的存储读优化 ReadIndex与LeaseReadPreVotesnapshot管理Multi-Raft参考引言这篇文章看题目像是技术专家的经验分享,但事实上其实只是我个人的臆想,掺杂了网上一些博原创 2021-03-20 22:41:32 · 4669 阅读 · 3 评论 -
state machine replication 与 primary backup system 之间的区别
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。本作品 (李兆龙 博文, 由 李兆龙 创作),由 李兆龙 确认,转载请注明版权。文章目录引言Active replication 与 Passive replication一致性算法与状态机发送日志的区别引言第一次看到这个问题是在看一些技术博客讨论ZAB与Paxos,Raft的区别的时候。这个问题困扰了我很久,我一直不清楚它们之间到底有什么不同。说实话,网上我看的的所有文章对这个问题的描述也是含含糊糊。本篇文章基于维基原创 2021-02-23 16:28:32 · 697 阅读 · 0 评论 -
Paxos,Raft,ZAB的差异对比
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。本作品 (李兆龙 博文, 由 李兆龙 创作),由 李兆龙 确认,转载请注明版权。文章目录引言背景概述差异对比Leader选举如何选举选举信息选举的触发上一轮次的数据如何处理上一轮未提交的日志脑裂问题请求处理过程一般流程日志的连续性请求的连续性一点想法总结引言对于ZAB与Paxos协议并不了解的我写这篇文章属实有点误导人的感觉,所以把这篇文章看成一篇消遣娱乐的爽文即可。虽然平时Raft协议我们听的比较多,但是确实是ZA原创 2021-02-18 00:41:46 · 2585 阅读 · 3 评论 -
对于 Fast Leader Election 机制的探究
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。本作品 (李兆龙 博文, 由 李兆龙 创作),由 李兆龙 确认,转载请注明版权。文章目录引言问题描述Fast Leader Election开始阶段处理选票总结引言在思考ZAB算法和Raft算法的异同时很疑惑,因为可以说很相似又可以说很不似。对于这个疑惑的深挖诞生了这篇文章。问题描述首先我们要清楚一个问题,一般来讲一个一致性协议会分为几个部分,这几个部分构成了完整的一致性协议。以Raft为例,其就是由领导人选举,日原创 2021-02-09 17:13:08 · 518 阅读 · 0 评论 -
分布式存储中的数据冗余
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。本作品 (李兆龙 博文, 由 李兆龙 创作),由 李兆龙 确认,转载请注明版权。引言同一个问题在学习的不同阶段理解是不一样的。开始时对此领域了解尚欠,看问题的角度不但低,而且单一,就会导致很容易照着某种解去看待这个问题,就比如说这个"简单"的问题,即数据冗余,在最开始的时候这个问题在我的眼中等同于一致性协议,因为我们可以基于一致性协议去做数据冗余,当然最重要的是这是强一致性的,但是众所周知强一直性(服务器角度的强一直性,原创 2021-02-07 18:02:05 · 3497 阅读 · 0 评论 -
facebook技术探究之基于memcache的扩展
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。本作品 (李兆龙 博文, 由 李兆龙 创作),由 李兆龙 确认,转载请注明版权。文章目录引言问题描述引言按理说最近时间这么紧张是没有时间读paper的,但是机缘巧合之下又看到了这篇文章,简单扫了一下文章的内容以后决定精读一下。开始读这篇文章是因为看题目以为会与一致性哈希沾点关系,因为前两天基于看到Dynamo为了提高反熵的效率对一致性哈希做了一些优化,如果此时能对比几种方案那当然是极好的,但是看到内容以后发现其实没有多原创 2021-02-06 22:07:41 · 406 阅读 · 0 评论 -
对于leases机制的一些思考
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。本作品 (李兆龙 博文, 由 李兆龙 创作),由 李兆龙 确认,转载请注明版权。文章目录引言leases与缓存一致性leases机制描述leases时延分析引言缓存是计算机科学中应用非常广泛的一种技术,其可以在大幅度的降低读取操作的开销以及服务器的负载,对于网络流量(总线通信开销)的减小也有不小的好处(也可以利用局部性),所以在操作系统,以及分布式系统中出现了大量它的身影。但是缓存的出现也引入了一个问题,就是缓存一致性原创 2021-01-20 22:41:38 · 559 阅读 · 0 评论 -
从false sharing到缓存一致性,这其实与我们息息相关
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。本作品 (李兆龙 博文, 由 李兆龙 创作),由 李兆龙 确认,转载请注明版权。文章目录引言false sharing引言缓存对于我们广大程序员来说显然是一个极度重要的东西,但是很多人其实在大多数时候忽视了它的存在,这实在是一个非常遗憾的事情,我们今天不谈类似于Redis,memcache,Tair这样的分布式缓存,也不谈操作系统中逻辑上的缓存,比如说VFS中的四级缓存[1]。我们只是谈谈CPU中的高速缓存中的两个问题原创 2021-01-09 20:46:25 · 479 阅读 · 0 评论 -
ChubbyGo的安全性论证与展望
文章目录引言安全性Acquire超时参数CheckSeq接口展望FIFO client order与Sequential Consistency总结引言这篇文章主要陈述了ChubbyGo目前功能上遇到的一些问题,以及一些我认为可以继续优化的地方。其实当我重新仔细的审视了一遍ChubbyGo的实现以后,我惊奇的发现除了一些我已知的可以修改的Bug以及因为Go的RPC框架造成的不便以外,所有安全性问题都来源于时间,这是一个情理之外而又意料之中的事情。虽然在Lamport大神思想的熏陶下我早知道了在分布式环原创 2020-11-04 21:17:05 · 354 阅读 · 0 评论 -
Using ChubbyGo !Join in ChubbyGo!
这个可爱的龙猫的名字叫做Go!一切的一切都得从大一的说起。在第一次参加软件自由日的时候,犹记得学长和老师迫不及待的把开源的前世今生向懵懂的我们娓娓道来,那一幕至今仍不时在脑中回荡,也就在那一时刻,他们在我心中以一种他们自己也未必感知的方式埋下了一颗向往开源的种子。伴随着对于计算机进一步的学习,也逐渐的了解了"自由软件","开源许可证"等等这些以前看来抽象难懂的概念,但是我有时会对于开源这个词感到陌生,感到一种遥不可及却又触手可得的距离,所以我时常会质问自己:什么是开源呢?答案也许是不确定的。因为就目前.原创 2020-11-02 12:41:42 · 757 阅读 · 3 评论 -
ceph:一个高可靠,高性能,可扩展,自动化的分布式文件系统
引言对于GFS论文的学习让我知道了一个分布式文件系统要实现什么功能与如何实现,即在一定一致性下实现对于极大规模数据的存储与访问。GFS(HDFS)的中心化设计简单且有效的实现了我们的需求,但是却留下了一个问题,就是中心化的设计使得这个系统会在扩展时出现的单点存储的问题,也会出现访问的单点的问题,虽然在中心节点上使用大型机,来得到很多倍规模的提升,但是终究有上限。ceph的出现就解决了这些问题,它使用了开创性的算法使得整个系统成了去中心化的结构,理论上支持无限扩展,并使得整个系统可以实现自动化的参考:原创 2020-09-15 20:50:54 · 1307 阅读 · 0 评论 -
再谈CAP理论:消除以往一些顽固的误解
文章目录引言《CAP Twelve Years Later: How the “Rules” Have Changed》《BASE: An Acid Alternative》引言这篇文章是在看了两篇很好的文章翻译以后,发现以前对于CAP的理解有一些偏差,导致对BASE的理解也有问题,虚心读完两篇文章以后,对于以前的误会也消除了一些,当然是否是真的理解了还不清楚,毕竟缺少实际工业项目的磨练。这篇文章旨在讨论清楚几个以前对于CAP我没有意识到的点,这些导致了中间学习的时候产生了很多疑惑,如今看来就是基础理论原创 2020-08-28 22:30:53 · 501 阅读 · 0 评论 -
事件,时间与偏序关系
文章目录引言Happened Before与偏序逻辑时钟全序物理时钟对全序关系的思考全序关系与无锁编程总结引言这篇文章其实是对于《Time,Clocks,and the Ordering of Events in a Distributed System》这篇论文的论文笔记,但以这篇文章为契机,又想到了一些别的东西,所以挑选其中最为重要的概念,构成了这个题目。《Time,Clocks,and the Ordering of Events in a Distributed System》这篇论文的引用量是原创 2020-08-25 22:38:36 · 947 阅读 · 0 评论 -
从拜占庭将军问题到PBFT
引言拜占庭将军问题在分布式领域是一个所有人都耳熟能详的问题,在初次学习分布式共识算法,比如Raft的时候,我们会看到容忍非拜占庭错误这样的句子,所以Raft可以抵御N>2f+1时f个节点的错误。那么什么是拜占庭错误,如何可以避免拜占庭错误呢?这拜占庭容错算法的完善其实是一个逐步的发展过程,在Lamport1982年提出拜占庭将军问题时其实就给出了两种解法OM与SM,但是太过注重理论,使得算法虽可以解决问题,但时间复杂度太高,即O(n^(f+1)),已经达到了指数级别,基本不可能用于实践。后来在199原创 2020-08-22 19:23:19 · 765 阅读 · 0 评论 -
Amazon Dynamo:一个高可用性的键值服务
文章目录引言设计需求系统架构引言Amazon Dynamo描述了一个满足高可用性的分布式键值系统,这是一篇非常精彩的论文,这一个不同于Redis集群的分布式键值系统,但它们都有一个共同点,就是它们都有着非常优雅的设计,都完美的解决了摆在作者眼前的现实问题,值得仔细推敲。而且感觉DDIA第五章的无主节点部分虽然没有明说,但是确实是围绕着这篇论文讨论的,这也是个复习的好机会;初此之外这也是我第一次看到实际工程中应用一致性哈希,这样也可以更加深入的看看当时有疑惑的地方;并且其中满足高可用的设计实在可以说是精巧原创 2020-08-16 15:24:21 · 657 阅读 · 0 评论 -
谈谈对分布式一致性的一点理解
文章目录引言一致性的分类客户角度的一致性线性一致性前缀一致性单调读一致性读己之写服务器角度的一致性强一致性顺序一致性单主节点多主节点因果一致性总结引言这是一个很大的主题。我相信每一个初学分布式的人开始时都像我一样深深的思考过这个问题,但是却仍然是一头雾水,然后每经历一次“顿悟”,又会因为某个新的问题再次陷入沉思,所幸在经历过几个这样的来回以后算是对这个问题在脑子里有了一个简单且算是全面的印象,遂记录这一篇博客以帮助更多的人能够对这个问题有着更为深入的理解。事实上我在一个月以前就想写下这篇文章了,可是当时原创 2020-08-14 22:09:10 · 849 阅读 · 0 评论 -
Spark RDD 论文分析
引言首先要说Spark并不是一种解决问题的框架,而是这个框架的具体实现,而论文中提出的新框架的名字叫做RDD(Resilient Distributed Datasets 弹性分布式数据集),众所周知分布式计算框架例如Map/Reduce在实际中应用如此广泛,为什么要重新设计一个新的框架呢?原因在paper中有所提到,原因就是在很多的计算场景下用户会对相同的数据集进行多次不同的查询或者其他操作,但是现有的计算框架都是把中间数据直接存放在一个可靠稳定的系统中,比如分布式文件系统,如果这部分数据存储在内存中的原创 2020-08-13 17:59:45 · 665 阅读 · 0 评论 -
MIT 6.824涉及的部分论文翻译
引言这篇文章用于记录在学习6.824过程中所涉及到的论文的翻译,以帮助像我一样的英语蒻蒻愉快的享受6.824。以下。lecpaperlec4The Design of a Practical System for Fault-Tolerant Virtual Machines原创 2020-08-13 08:28:35 · 4177 阅读 · 5 评论 -
谷歌技术探究之Spanner
文章目录引言TrueTime事务读写事务快照读只读事务总结引言Spanner是一个全球分布式的数据库,从数据模型来看Spanner很像BigTable,都是类似于key对应着一行数据,但是却并不一样,Spanner中衍生出了“目录”的概念(把两张表合并存储)。这并不是重点,Spanner的重是它是第一个在全球范围内传递数据且保证外部一致的分布式事务的系统,且支持几种特定的事务,这显然是一个很困难的问题,我们会在文章中加以描述,这篇文章主要对Spanner的事务以及实现事务所使用的 TrueTime AP原创 2020-08-12 21:18:18 · 2172 阅读 · 1 评论 -
谷歌三架马车:GFS,MapReduce,BigTable论文高质量翻译
引言这三篇论文可以说是非常经典了,Hadoop就是依据这些被开源社区开发出来的,对于英文蒻蒻来说直接读原文效率实在是不高,这是我找到几篇高质量翻译,无论是从排版还是内容的准确性上来说都是很不错的,如下:GFS:https://blog.csdn.net/hguisu/article/details/7244798?ops_request_misc=&request_id=&b...原创 2020-08-11 21:44:57 · 859 阅读 · 0 评论 -
谷歌技术探究之BigTable
文章目录引言BigTable是什么数据模型基本实现思路优化总结引言其实对于这篇论文的简单介绍网上已经有很多了,所以这篇文章并不想去陈述其设计,而是想简单说一说我认为的亮点所在,虽说如此,我还是觉得我并没有get到什么其他人没有get到的东西,所以这是一篇比较无聊的纯记录性质的文章,方便过一段时间能够更快的会想起相关内容的细节。BigTable是什么这个问题在paper的开头就下了定义,即:Bigtable是一个分布式的结构化数据存储系统,它被设计用来处理海量数据:通常是分布在数千台普通服务器上的PB原创 2020-08-11 21:44:27 · 1642 阅读 · 0 评论 -
MIT 6.824课后问题解答
文章目录lec3 GFSlec4 VMware FTlec6 Raft1lec7 Raft2lec3 GFSQ:为什么原子附加是至少一个不是恰好一次?在论文3.1,第七步中,如果第一次写入失败,客户端会进行重试,这会导致数据在没有出现失败的副本中多次追加,所以可能会检测到重复的客户请求。但至少可以看到一条Q:应用程序如何知道块的哪些部分由填充和重复记录组成?为了检测出填充,引用可以设置一个可预测的长度在记录的开头(我认为是长度有效数据长度之类的东西),或者包含一个checksum。为了检测出原创 2020-08-01 15:01:43 · 1626 阅读 · 0 评论 -
Zookeeper探究之一致性与应用
引言Zookeeper最早诞生于雅虎研究院,后捐赠给Apche,于2010年11月正式成为Apache的顶级项目。很多人认为Zookeeper像HDFS,MapReduce一样是谷歌论文的产物,即是Chubby的开源实现,毕竟从API来看它们的差别就是acquire/release和open/close,且主要数据结构极其类似。其实不然,从paper中来看Zookeeper其实是一个无阻塞的分布式协调中心,这与Chubby的分布式锁的定义就完全不同。其次Zookeeper实际实现的是一个功能强大的同步原语原创 2020-07-30 16:56:50 · 406 阅读 · 0 评论 -
对于《The Design of a Practical System for Fault-Tolerant Virtual Machines》的一点理解
文章目录引言Replication关于paper问题需要注意的几点Q&A总结引言写这篇文章的目的是整理一下看了这篇论文和课程视频以后的一些问题理解与思考,因为是个人的想法,难免出现疏漏,错误之处还请读者斧正。Replication首先这节课的主题是复制,所以挑选了《The Design of a Practical System for Fault-Tolerant Virtual Machines》这篇文章从一个容错虚拟机的角度来阐述复制与容错。但其实在我看来其实容错虚拟机确实从“状态”的原创 2020-07-27 21:29:14 · 617 阅读 · 0 评论 -
浅谈分布式锁:安全与性能的取舍之道
文章目录引言解决方案1. 关系型数据库作为锁2.1 Redis做分布式锁2.2 RedLock安全性争议存在的问题3. Zookeeper与Chubby3.1 Zookeeper3.2 Chubby总结参考引言我们知道在单机多线程情况下,如果要保证临界区同一时刻只有一个线程访问,我们的做法就是使得多个线程的临界区在CPU看来串行执行,那么如何做到如上操作呢?两个方法,一个是使用外部组件保证同步,常见的有自旋锁,互斥锁,条件变量,信号量等常见的工具,在一些语言内还支持其他比较有特色的工具,比如golang原创 2020-07-24 20:59:53 · 1131 阅读 · 0 评论 -
MIT 6.824 lab2 PartC
引言这篇文章我们来进行PartC的编写,这个相比于PartB来说就是轻松太多了,但是仍需要我们头脑清楚。首先来看看我们的任务是什么。Implement persistence by first adding code to serialize any state that needs persisting in persist(), and to unserialize that same state in readPersist(). You now need to determine at wha原创 2020-05-11 23:09:40 · 827 阅读 · 0 评论 -
MIT 6.824 lab2 PartB
引言感谢MIT为全球有此兴趣的人提供如此高质量的课程,这门课程让我感受到了分布式的美妙与深邃,做lab1的时候还感觉云里雾里,因为有一点点兴趣,遂也继续下去,做完lab2,终于明白了我不是干程序员的料,已成功转行,现在已经把电脑砸了,正在市中心推销游泳健身,一月加提成2W+,感谢这个实验为我带来的一切。简单发一个小小的牢骚,看官一笑即可~~ 不过有一说一,这个课程的part B非常有难度,如果说lab1,和lab2 PartA只是小打小闹的话,PartB就是正儿八经的大刀阔斧了。PartB引入了很多原创 2020-05-10 14:52:40 · 2496 阅读 · 1 评论 -
MIT 6.824 lab2 PartA
引言在我学习这一系列课程之前再网上看到了这么一个帖子,说大多数人学6.824都在完成了lab1以后就放弃了。当我完成lec1 lab1的时候嗤之以鼻,MIT的课程难度也不过如此嘛。直到lec2,说实话有点不清楚在讲什么,因为没有课前预习的paper,只是扔了一大段代码,还没有注释,实在是让人有点不知所措,所以只是熟悉了go的RPC的用法和做了一点相关工作后就作罢。到了lec3 lab2,说实话实...原创 2020-05-07 22:25:57 · 3555 阅读 · 0 评论 -
谷歌技术探究之GFS
引言GFS可以说是当今云计算的鼻祖,直至今日借鉴其思想的HDFS仍旧活跃在我们的视线当中,我们实在是有必要去好好的学习下相关的知识的,这篇文章是在学习了《The Google File System》这篇论文以后的一点理解和总结,因为掺杂了个人的理解有些地方可能并不准确,还望有不同见解的朋友能不吝赐教。参考:博文《Google File System 总结》博文《GFS小结》博文《GF...原创 2020-05-06 18:29:45 · 2849 阅读 · 0 评论 -
MIT 6.824 lab1
引言6.824不愧为神课,这样的教学方式才是真正做到提升学生兴趣与水平的好课啊!试问能有多少个学校的课程设计中有这样高质量的实验,对比本校的所有计算机课程,一年一个TTMS,又或者是无意义的上机敲个几百行学习语言的代码,太真实了呀。。实在是一年的实验不及人家一学期一门课的实验来的有趣,来的有用。的要怪就怪自己当初没有好好学习了。牢骚发完了,开始正题部分吧。Introduction这个实验的主...原创 2020-05-04 21:07:40 · 4327 阅读 · 0 评论 -
问题解决:6.824 debug call has arguments but no formatting directives
这个问题发生在6.824中当我们去提交测试代码的时候。也就是发生如下情况首先还是不要质疑这个神课的测试代码,这个时候我们要做的就是去报错的地方注释掉这一行,如下:然后就OK啦...原创 2020-05-03 20:48:45 · 3679 阅读 · 4 评论