WarYan's Blog

记录成长历程

来源:本地 doc/reading_list.md。这份清单来自 TinyKV 项目,我按 Lab 学习顺序补了一层中文导读。

TinyKV 阅读清单按系统层次排列
阅读材料可以按系统层次放回去:本地存储、复制一致性、分片调度、事务、测试。

这份阅读清单不适合从第一条一直啃到最后一条。更好的办法是跟着 Lab 走:Lab1 读存储引擎,Lab2 读 Raft 和一致性,Lab3 读分片和调度,Lab4 再读事务。遇到面试追问,再往对应主题里补论文或博客。

阅读全文 »

最近把 MIT 6.5840 和 TinyKV 都重新梳理了一遍。它们看起来都在写 KV、Raft、分片和容错,但真正做下来会发现,二者的训练目标很不一样。

MIT 6.5840 更像分布式系统正确性的训练营。它关心的是:在 RPC 丢包、乱序、重试、网络分区、节点重启这些条件下,系统怎样还能给出正确结果。TinyKV 更像分布式数据库存储层的缩小版。它关心的是:数据如何落到本地存储,Raft 如何接入真实的 raftstore,Region 如何分裂和调度,事务如何通过 MVCC 和 Percolator 协议实现。

一句话概括:

1
2
MIT 6.5840 训练的是分布式系统底层正确性。
TinyKV 训练的是把这些正确性能力放进数据库存储层。

先用一张图把两条路线摆在一起:

MIT 6.5840 和 TinyKV 的整体对比

也可以用 Mermaid 把它抽象成两条学习路径:



flowchart LR
    ROOT["两条路线都在训练 KV + Raft,但落点不同"]

    ROOT --> MIT0["MIT 6.5840<br/>系统正确性"]
    MIT0 --> RAFT["Raft / KVRaft<br/>复制状态机"]
    RAFT --> SHARD["ShardKV<br/>分片迁移"]

    ROOT --> TINY0["TinyKV<br/>数据库存储层"]
    TINY0 --> RK["RaftKV / Multi-Raft<br/>Region + raftstore"]
    RK --> TXN["Transactions<br/>MVCC / Percolator"]

    RAFT -. "共识底座" .-> RK
    SHARD -. "分片思想" .-> RK

阅读全文 »

第 3 章 数据链路层

使用点对点信道的数据链路层

数据链路和帧

  • 数据链路层使用的信道主要有以下两种类型:

    • 点对点信道。这种信道使用一对一的点对点通信方式。
    • 广播信道。这种信道使用一对多的广播通信方式,因此过程比较复杂。广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据发
  • 链路(link)是一条无源的点到点的物理线路段,中间没有任何其他的交换结点。

  • 数据链路(data link) 除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。

  • 数据链路层传送的是帧

    阅读全文 »

第 2 章 物理层

物理层的基本概念

物理层的主要任务描述为确定与传输媒体的接口的一些特性

  • 机械特性 指明接口所用接线器的形状和尺寸、引线数目和排列、固定和锁定装置等等。

  • 电气特性 指明在接口电缆的各条线上出现的电压的范围。

    阅读全文 »

第 1 章 概述

计算机网络在信息时代中的作用

  • 21 世纪的一些重要特征就是数字化、网络化和信息化,它是一个以网络为核心的信息时代。
  • 网络是指“三网”,即电信网络、有线电视网络和计算机网络。
  • 发展最快的并起到核心作用的是计算机网络。
    阅读全文 »

我的第一个标签

曾经的是这样的

###也许是这样的
asdafasfasfasdfa新政策是徐水电费水电费水电费阿斯蒂芬达到

阅读全文 »
0%