Code Monkey home page Code Monkey logo

cse-2021's Introduction

cse-2021-fall

很难想象,在大三上学期我上到了一门特别有趣,看似科普实际上却干货满满的课程 ~ 计算机系统工程。软件学院夏虞斌老师为这门课赋予了灵魂,而这四个 lab 则加深了我对计算机系统的了解。

注:每个 lab 可以从不同分支处找到,每个 lab 都是基于前一个 lab 进行实现的。

目录

Lab 1: Basic File System

在 lab 1 中,我完成了一个 File System 的雏形。

PART1 中完成了 CREATE, GETATTR, PUT, GET, REMOVE 这五个系统 API。

PART2 中完成了 CREATE, MKNOD, LOOKUP, READDIR, SETATTR, WRITE, READ, MKDIR, UNLINK, SIMBOLIC LINK 这几个基于底层的拓展 API。

参考文档在 这里,感谢 沈嘉欢 学长负责这个 lab 并为我提供了许多帮助。

Lab 2: Word Count with MapReduce

在 lab2 中,我完成了一个 MapReduce 的工具,通过 RPC 调用实现了分布式系统上的单词数量统计。

PART1 中完成了一个单机单线程的 MapReduce 工具。

PART2 中完成了一个分布式多线程的 MapReduce 统计。

参考文档在 这里,感谢 李明煜 学长负责这个 lab 并为我提供了许多帮助。

Lab 3: Fault-tolerant Key-Value Store with Raft

在 lab3 中,我完成了一个 Raft 的 Key-Value 存储,基于 Raft 论文

PART1 中完成了 Leader 选举。

PART2 中完成了日志备份。

PART3 中完成了日志的持久化存储。

PART4 中完成了快照存储。

PART5 中完成了一个可容错的键值对存储。

参考文档在 这里,感谢 韩明聪 学长负责这个 lab 并为我提供了许多帮助。

Lab 4: Shard Transactional KVS Service

在 lab4 中,我完成了一个分片的支持事务的 Key-Value 存储服务。

PART1 中完成了将键值对分区到多个分片客户端,并且完成了 Two Phase Commit 事务支持。

PART2 中加入了 RAFT 元素。

PART3 中完成了锁相关的操作。

参考文档在 这里,感谢 陆放明 学长负责这个 lab 并为我提供了许多帮助。

cse-2021's People

Contributors

caribouw avatar francis0407 avatar maxul avatar shenjiahuan avatar williamx1 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.