协程

本文分析一下在TinyCoro中对于协程遇到的一些问题

Read more »


惊群效应(Thundering Herds)

本文总结分布式系统中常见的“惊群效应”问题及应对方案,内容会随着实践不断补充。

定义

惊群效应是指在分布式系统中,当某一共享资源在短时间内同时变为可用或失效时,大量客户端或线程几乎同时发起请求,导致后端瞬时负载激增,甚至引发雪崩效应。


常见触发场景

  • 缓存击穿
    热点 Key 过期或被淘汰,大量请求同时 miss,直击数据库,造成后端压力骤增。

  • 锁竞争唤醒
    多个线程等待同一分布式锁或条件变量,持锁方释放后全部被唤醒,瞬时产生大量竞争请求。

  • 服务节点瞬时上线
    新节点启动后被路由层立即分配大量请求,但冷缓存/初始化开销未完成,容易导致快速过载。


常见缓解策略

  • 限流
    控制单位时间请求数,防止后端瞬时过载。

  • 请求合并
    多个相同请求合并为一次后端访问,减少重复开销。

  • 提前刷新
    在热点数据失效前主动更新,避免大规模 miss。

  • 随机过期
    为不同 key 增加随机 TTL,避免同一时刻集中失效。


Lease 机制

原理
Lease 是一种缓存击穿防护策略,在 Memcached 等系统中常见:

  • 当某个 key miss 时,缓存只向第一个请求方发放 lease token,授权其访问后端并回填数据;
  • 其他请求方在 lease 有效期内返回“稍后重试”或等待回填完成;
  • 在同一 lease 周期内,只有一个请求会触发后端访问。

优点

  • 将瞬时高并发压力限制在缓存层,保护后端服务。
  • 可结合 TTL 随机化、热点数据提前刷新等策略,进一步降低风险。

局限

  • 无法避免初次 miss 时的并发涌入。
  • Lease 发放策略与 TTL 需结合业务特点调优。

总结

惊群效应的本质是瞬时高并发访问单一昂贵资源。应对的核心思路是:

  • 减少瞬时访问量(限流、随机过期)
  • 减少重复访问(请求合并、Lease)
  • 提前避免失效(提前刷新)

在实际系统中,往往需要多种策略结合使用,才能在高并发场景下有效降低惊群带来的风险。

Raft2A

本文进行简短的6.824中lab2的简单实现梳理,以及对应的注意事项

Read more »

MapReduce

本文进行6.824中第一个lab的分析,基于课程的要求,本文不给出对应的代码,当然,本文的主要目的是对于本个lab的实现进行自我复盘,回顾下要实现MapReduce这种框架的最小可行实现需要我们来提供什么

Read more »

GateServer

本节进行网关服务器的线程模型的分析

Read more »

ResServer

本节进行资源服务器的简单分析

Read more »

系统设计中的端到端论据

J.H. Saltzer, D.P. Reed 和 D.D. Clark*
麻省理工学院计算机科学实验室

作者地址:J.H. Saltzer 和 D.D. Clark,麻省理工学院计算机科学实验室,马萨诸塞州剑桥市科技广场545号,邮编02139;D.P. Reed,Software Arts, Inc.,马萨诸塞州韦尔斯利市Mica Lane 27号,邮编02181。
本研究部分由美国国防部高级研究计划局(ARPA)资助,海军研究办公室(ONR)根据合同号 N00014-75-C-0661 监督。
1981年4月8-10日法国巴黎第二届分布式计算系统国际会议论文修订版,第509-512页。© 1981 电气和电子工程师协会(IEEE)版权所有。经许可转载。
发表于《ACM计算机系统汇刊》第2卷第4期,1984年11月,第277-288页。
转载于 Craig Partridge 编辑的《互联网创新》,Artech House, Norwood, MA, 1988, 第195-206页。ISBN 0-89006-337-0。另计划转载于 Amit Bhargava 编辑的《综合宽带网络》,Artech House, Boston, 1991。ISBN 0-89006-483-0。
Scribe/FinalWord 源文件:http://web.mit.edu/Saltzer/www/publications/


Read more »

GateServer

​ 在该栏目中,我将会对于我的项目中的服务器进行一次review,在review中去重新回顾我的服务器架构来巩固我对于一个服务器设计上的理解,话不多说,直接开始。

Read more »