自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

转载 6.S081: xv6源码分析--页表

6.S081/6.828: 本文是对xv6页表的讲述,包含分页机制的开启、内核页表、用户页表及其切换。

2022-11-21 20:24:01 1213 2

转载 6.S081: 2 Lab system calls

6.S081/6.828: 上个实验实现了一些shell工具,这个Lab实现一些系统调用,来帮助理解系统调用如何工作、如何暴露。

2022-11-21 20:17:03 156

转载 6.S081: 1 Lab Xv6 and Unix utilities

6.S081/6.828: 第一个Lab是实现几个shell工具,每个工具都是一个可以独立运行的main函数,会调用系统调用,但其本身并不是系统调用。下面会介绍sleep、pingpong、prime、xargs等工具的实现。

2022-11-21 20:10:16 168

转载 6.S081: 0 环境搭建和调试

6.S081/6.828: 本文讲解如何基于Ubuntu20搭建6.S081的环境以及调试方式,主要涉及到仿真模拟器(qemu)、镜像文件、依赖、vscode。

2022-11-21 20:04:47 729

转载 6.824 raft Lab 4 multi-raft-group KV-Server

本实验是6.824最后一个实验,实现了一个简易的multi-raft-group数据库,通过多副本、多分片来扩大容量、提高性能、提高容错性。这个数据库中包含一个总控节点shardctrler来支持配置变更,shardkv来负责分片读写、分片迁移、分片清理等,并能够支持客户端幂等性、线性读。

2022-10-16 23:59:49 429 1

转载 6.824 raft Lab 3 kvRaft

这个实验在6.824 Lab2D raft上实现一个单分片的键值数据库,支持Get、Put、Append三种操作,能够保证客户端幂等性和线性读。本实验通过记录上下文和每个client的requestId来保证幂等性,以写请求的逻辑处理读请求来实现幂等性。

2022-10-05 17:37:44 164

转载 6.824 raft Lab 2D 日志压缩

本文简要介绍了日志压缩的实现,减少了数据量和恢复时间。日志压缩由应用层根据日志数量触发,生成snapshot并截断日志,每个peer都可以独立进行。如果某个peer的日志太过于落后就需要复制Leader的snapshot,而peer接收到snapshot后不能立刻应用和截断日志,应该由状态机先应用,raft后应用snapshot。倘若先应用到raft成功了,后应用到状态机失败了,就会导致状态机数据不完整,最好是两者保持原子性。

2022-10-03 22:45:40 591

原创 长连接分析

本文讲解长连接和短连接的特点,长连接更适合频繁的调用且客户端比较稳定的情况,但是需要有保活机制及时发现客户端失效,尽快回收资源。短连接适合终端用户的调用。

2022-09-28 20:53:47 326

原创 redis事件循环源码分析

本文是redis事件主循环分发逻辑源码分析。redis凭借io多路复用来监视连接事件,并将数据在内核与用户空间的拷贝分发给io线程组,尽可能减少主线程的开销。另外,凡是涉及到网络和磁盘io的都是交给io线程组和后台线程做的,主线程主要职责是执行命令和分发任务,因为是内存操作,而且没有阻塞锁,所以非常快。

2022-09-28 20:45:32 395

转载 6.824 raft lab 2C持久化与恢复

6.824 raft lab 2C实验,主要是term、votedFor、logs这几个字段的编码、解码、持久化等。另外,采用按term的方式进行日志探测,每次找到不匹配term第一次出现的位置作为nextIndex,由Follower来决定下一次从哪里开始复制日志。

2022-09-26 19:18:09 325

转载 6.824 raft lab 2A 2B实验分析

本文主要介绍6.824 raft实验的lab 2A、2B,实现了raft选主和心跳、日志复制的功能。

2022-09-25 17:04:04 519

原创 redis事务源码分析

redis事务源码分析

2022-09-19 12:29:56 93

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除