Reading list
(不代表都仔细看过)
0. websites
- REPRODUCING NETWORK RESEARCH 研究网络的
- Johnny’s Software Lab 关注软件性能
- uops.info 从x86 microarchitectures 角度分析latency,throughput等性能指标
1. 体系结构
cache
Characterizing Prefetchers using CacheObserver 观测Intel L2 cache prefetcher行为
2. OS(Linux)
timer
Hashed and hierarchical timing wheels: data structures for the efficient implementation of a timer facility 讲述分层时间轮算法, tokio的runtime也使用了时间轮。
调度
Earliest Eligible Virtual Deadline First : A Flexible and Accurate Mechanism for Proportional Share Resource Allocation EEVDF调度器,Linux有参考该算法。和CFS相比,会考虑latency。
syscall
Fuss, Futexes and Furwocks: Fast Userlevel Locking in Linux futex是Linux的一个系统调用,用来帮助实现用户程序的Mutex,早期所有Lock都会进入内核,现在像Rust是先检测是否锁被占用,然后自旋一会,最后进入内核阻塞。
3. 分布式
CAP 理论
- Brewer’s conjecture and the feasibility of consistent, available, partition-tolerant web services CAP形式化说明,C要求线型一致性,A表示client请求最后一定能收到有意义回复(报错信息不算),P表示系统中是否出现分区。CAP中网络模型是异步的,即消息可能延迟任意时长。
- A Critique of the CAP Theorem 批评CAP原文不严谨且与现实系统联系不大,总结consistency和network delay之间的trade-off,且这些成果是早于CAP论文的。
4. Concurrency
验证并发程序正确性
- CDSCHECKER: Checking Concurrent Data Structures Written with C/C++ Atomics loom实现参考的paper
- Partial-Order Methods for the Verication of Concurrent Systems (136页) 减少验证并发的状态空间
5. Network
TCP
- Understanding the Performance of TCP Pacing (2000) 测量pacing,控制发包速率,避免burst
- Making Linux TCP Fast TCP中关于拥塞控制,发送速率,packet size优化
- BBR: Congestion-Based Congestion Control 新的拥塞控制算法,计算RTT和bottleneck bandwidth来做拥塞控制
- TCP Fast Open 在TCP握手阶段发送数据,降低延迟