MIT-6.824-Lab1(MapReduce) MIT-6.824-Lab1(MapReduce)实验要求任务:实现分布式MapReduce你的任务是实现一个分布式MapReduce,包括两个程序:协调者(coordinator)和工作者(worker)。系统中只有一个协调者进程,以及一个或多个并行执行的工作者进程。在真实系统中,工作者会运行在多台不同的机器上,但在本实验中,你将在单台机器上运行它们。工作者通过RPC与协调者通信。每个工作者进程 2024-12-25 学习笔记 #MIT 6.824 #Distributed System #Storage
MIT-6.824-lecture4: Consistency, Linearizability MIT-6.824-lecture4: Consistency, LinearizabilityPreparationTesting Distributed Systems for Linearizability分布式系统的正确实现颇具挑战性,因为它们必须应对并发和故障。网络可能会延迟、重复、重新排序甚至丢弃数据包,而机器也可能随时发生故障。即便设计在理论上被证明是正确的,在实际实现中仍然难以避免 2024-12-25 学习笔记 #MIT 6.824 #Distributed System #Storage
MIT 6.824-Intro MIT 6.824-Intro1. 背景学习分布式系统相关知识,系统性的补全相关概念知识,为找暑期实习和秋招做准备。 使用的一些学习资料如下: 视频: MIT《分布式系统|MIT 6.824 Distributed Systems 2020》中英字幕 课程主页:Schedule 相关博客: MIT 6.824学习笔记 MIT 6.824 2020 视频笔记 2.学习方式 快速阅读下推荐 2024-12-07 学习笔记 #MIT 6.824 #Distributed System #Storage
Linux File System (File operations) Linux File System (File operations)inode结构主要有以下成员:// 必须有的 mode:类型+权限 文件大小 引用计数 块地址 // 肯定没有的 文件名:一个文件可以有多个文件名,文件的文件名不存在inode里 // 可以有的 时间戳,一般不更新访问时间,维护设备寿命 inode 2024-12-07 学习笔记 #file system #linux
Linux File System (Blocks and Block Groups) Linux File System (Blocks and Block Groups)BSD块大小的演变,从1K -> 2K -> 4K。 Block Allocation: 文件系统再分配空间的时候是以block为单位的而不是字节。 查询剩余空间的操作应该是在常数时间内完成的。 用Bitmap来管理空闲的block,一个block大小的bitmap可以管理8192个blocks。 元 2024-11-18 学习笔记 #file system #linux
CodingNotes(01) 岛屿系列题目695.岛屿的最大面积我的思路最简单的想法 有一个函数输入是某个为1的点,然后去找这个点所在岛屿的面积。 函数计算的方式是DFS,向四周遍历直到碰到0。 遍历所有为1的点取最大值。 Code第一版code 123456789101112131415161718192021222324252627282930class Solution {public: int ma 2024-11-17 学习笔记 #DFS #Leetcode #isLand Problem
Linux File System (Disk) 本节主要介绍磁盘的结构首先Disk是由磁道、扇区和磁头几个部分组成的,柱面其实是一个逻辑概念,是指某一个磁道在所有盘面上的位置构成的一个抽象的柱面。一些参数的含义: 7200PRM:7200转每分钟 120Hz:一秒钟120转 转一圈是8.33ms 旋转延迟:把磁头移到指定扇区所耗时间的平均值。 seek time:移动磁头的时间(很多年没有优化过了) 寻道时间是可以去优化的,比如电梯算法、 2024-11-12 学习笔记 #file system #linux
Linux File System (Abstract) 这个系列的讲座主要是学习陈硕大佬的Linux文件系统系列视频,补充自己在文件系统部分知识的欠缺。 Kenneth Lane Thompson 在文件系统的基础上用了三周分别实现了一个editor、assembler和shell实现了操作系统Unix。可见现代Linux系统中一切皆文件的哲学其实来源于此,并不是说先有操作系统,再为其设计文件系统,而是恰恰相反现有文件系统,在此基础上搭建操作系统,可见 2024-11-11 学习笔记 #file system #linux
FastCommit论文精读 IntroductionFastCommit是一种文件系统的日志机制,主要针对传统物理日志方式(JBD2 ..)等存在的高磁盘写带宽占用、高IO占用和上下文切换开销等问题进行优化。 核心desgin: compact journaling selective flusing inline journaling FastCommit相比于JBD2 吞吐量提升120%并成功整合到Upstr 2024-11-05 论文精读 #JBD2 #Journaling #FastCommit
Git源码解析-环境搭建 Why? How?Why?做这件事的起因是在和导师做的一篇论文想去argue一个场景,场景下涉及到去了解git的delta compression机制,所以这个系列的文章核心是弄清楚git的压缩相关机制,当然如果工作流有涉及那么也会一起研究下。 How?在本地环境从源码编译git的源代码。 1. 获取源代码12git clone https://github.com/git/git.gitcd g 2024-11-03 学习笔记 #git