后端开发阅读文章
中间件
kafka
The Log: What every software engineer should know about real-time data’s unifying abstraction,对应的中文译稿在这里:《日志:每个软件工程师都应该知道的有关实时数据的统一抽象》。
redis
微服务
控制反转和依赖注入
Inversion of Control Containers and the Dependency Injection pattern
W-LFU
TinyLFU: A Highly Efficient Cache Admission Policy
bloom filter, count-min, hyperloglog
Data Sketching
算法
Hotring
阿里提出的针对Hashmap链式寻址的优化方式,通过构建环形的链表加上动态的将热点Node放到首位,来缓解hash冲突导致的性能下降。阿里的tail就有使用该算法进行优化。
HotRing: A Hotspot-Aware In-Memory Key-Value Store
https://www.usenix.org/conference/fast20/presentation/chen-jiqiang
Rocksdb
大名鼎鼎的嵌入式内存数据库Rocksdb的一些开发历程的论文。对存储方面感兴趣的还可以阅读一下wisckey等论文
Evolution of Development Priorities in Key-value Stores Serving Large-scale Applications: The RocksDB Experience
https://www.usenix.org/conference/fast21/presentation/dong
分布式
Vertical Paxos
这篇了论文是我觉得影响力被严重低估的一篇论文,我们最常用的容灾方案其实是一个注册中心加一个一主多从的方式做高可用。这篇论文,它将主从同步规约为一种共识算法。我大概看过Kafka的高可用底层原理,应该使用的就是该算法的设计思想。
Vertical Paxos and Primary-Backup Replication
https://dl.acm.org/doi/pdf/10.1145/1582716.1582783
租约机制最早的定义,现在已经被广泛用在心跳检测,Kubernetes架构等领域。
Leases: an efficient fault-tolerant mechanism for distributed file cache consistency
https://dl.acm.org/doi/abs/10.1145/74851.74870
这是大名鼎鼎的Elasticsearch就是使用这个算法实现的高可用。但是从个人角度看,我记得该算法和刚才提到的vertical paxos有共通之处,可惜论文中没有描述俩篇文章的关联。
PacificA: Replication in Log-Based Distributed Storage Systems
https://www.microsoft.com/en-us/research/publication/pacifica-replication-in-log-based-distributed-storage-systems/
SWIM 使用gossip来做服务发现的算法,Consul底层就使用了这个算法。相较于Redis那个上千台机器就会扛不住的服务发现算法,之前我给Redis提feature的时候写的就是基于这篇论文的设计。
SWIM: scalable weakly-consistent infection-style process group membership protocol
https://ieeexplore.ieee.org/abstract/document/1028914
PingCap大名鼎鼎的作品Tidb,里面讲述了Raft算法在HTAP中的工程落地。
TiDB: A Raft-based HTAP Database
https://pages.cs.wisc.edu/~yxy/cs764-f20/papers/tidb.pdf
这篇论文给出了当我们用同样的术语去描述raft和paxos的操作时,paxos和主流的raft到底有什么区别。
Paxos vs Raft: Have we reached consensus on distributed consensus?
https://dl.acm.org/doi/pdf/10.1145/3380787.3393681
上海交大团队的作品,通过refinement mapping建立了paxos和Raft形式化对应的关系。因为学术领域大部分是paxos,但是工程领域大部分写的都是raft算法,这篇论文,意味着所有针对paxos的优化都可以迁移到Raft。
On the Parallels between Paxos and Raft, and how to Port Optimizations
https://ipads.se.sjtu.edu.cn/zh/publications/WangPODC19.pdf
阿里家的分布式的文件系统,论文中还提出了Parallel Raft算法,解决了Raft乱序提交时的日志空洞问题。
PolarFS: An Ultra-low Latency and Failure Resilient Distributed File System for Shared Storage Cloud Database
https://www.cs.usfca.edu/~mmalensek/cs677/schedule/papers/cao2018polar.pdf
X-Engine
阿里的OLTP存储引擎,应对双十一的海啸,泄洪等问题设计的技术栈。通过各种层级的优化来应对相关挑战。
X-Engine: An Optimized Storage Engine for Large-scale E-commerce Transaction Processing
https://dl.acm.org/doi/epdf/10.1145/3299869.3314041
利用非AI的传统算法来做云环境的资源调度,我个人非常喜欢的一篇文章。是北大团队的一篇文章,在这个都靠AI调整机器负载的论文时代,让我觉得眼前一亮。
Dynamic Resource Allocation Using Virtual Machines for Cloud Computing Environment
https://ieeexplore.ieee.org/abstract/document/6311403/

浙公网安备 33010602011771号