缓存穿透击穿雪崩为何总在关键时刻拖垮系统从布隆过滤器到分布式锁的完整防御指南

2010年9月23日,Facebook经历了成立以来最严重的一次宕机——整整2.5小时,全球5亿用户无法访问。事后复盘发现,罪魁祸首竟是一个看似不起眼的配置值错误:当自动验证服务从数据库读取到一个无效值后,它删除了缓存条目,随后大量请求穿透到数据库。数据库超载后返回超时,系统将超时误判为无效值再次删除缓存,形成了无法自愈的死亡螺旋。 ...

9 min · 4075 words

布隆过滤器:用 9.6 个比特存储一个不确定的「是」

1970年,计算机科学家Burton Howard Bloom在《Communications of the ACM》上发表了一篇论文,标题是"Space/Time Trade-offs in Hash Coding with Allowable Errors"。论文只有五页,提出的问题却出奇地实用:如果你想在一个有限的内存空间里存储大量数据,并且允许偶尔犯错,能做到什么程度? ...

11 min · 5332 words