分页设计的三十年陷阱:从OFFSET的性能灾难到Cursor的工程突围

一位开发者在生产环境遇到了一个奇怪的问题:分页查询在前100页运行良好,但当用户翻到第500页时,原本2秒的查询变成了2分钟。数据库CPU飙升,整个系统响应变慢。罪魁祸首?那个看起来人畜无害的 LIMIT 10000, 20。 ...

9 min · 4388 words

搜索引擎是如何工作的:从倒排索引到语义搜索的三十年技术突围

1990年9月,麦吉尔大学的计算机科学研究生Alan Emtage开发了一个名为Archie的程序。这个程序的工作方式在今天看来极其原始——它下载所有匿名FTP站点的目录列表,然后创建一个可搜索的文件名数据库。Archie不索引文件内容,因为当时的数据量小到可以手动搜索。这是人类历史上第一个互联网搜索引擎。 ...

11 min · 5266 words

为什么Netflix放弃了Hystrix?从断路器模式到自适应并发限制的十五年演进

2018年11月,Netflix在GitHub上发布了一则简短公告:Hystrix不再处于活跃开发状态,进入维护模式。这个曾经在微服务容错领域占据统治地位的库,在经历了七年的生产验证后,被它的创造者亲手画上了句号。 ...

10 min · 4789 words

为什么你的无服务器函数第一次调用总是这么慢?从Firecracker到SnapStart的冷启动技术突围

title: “为什么你的无服务器函数第一次调用总是这么慢?从Firecracker到SnapStart的冷启动技术突围” date: “2026-03-07T04:04:58+08:00” description: “深入解析Serverless冷启动问题的技术本质,从华为云850亿请求的生产数据分析到AWS Lambda的Firecracker microVM架构,系统阐述冷启动的四阶段时间分解、不同语言运行时的性能差异(Rust 30ms vs Java 583ms),以及预置并发、SnapStart快照恢复等优化方案的技术原理与权衡。” draft: false categories: [“云计算”, “系统架构”, “性能优化”] tags: [“Serverless”, “冷启动”, “AWS Lambda”, “Firecracker”, “microVM”, “SnapStart”, “无服务器”, “函数计算”] 2024年,华为云研究团队发布了一份分析报告:在31天内,他们对五大区域的850亿次函数调用和1190万次冷启动进行了详细追踪。数据显示,某些区域的冷启动延迟高达7秒——这意味着用户点击一个按钮后,要盯着屏幕等待整整7秒才能看到响应。这不是个例。AWS官方文档承认,Lambda冷启动通常发生在不到1%的调用中,但延迟可能从100毫秒到超过1秒不等。对于那些追求毫秒级响应的应用来说,这种不确定性是致命的。 ...

9 min · 4072 words

为何要在生产环境故意制造故障?从Netflix的猴子军团到混沌工程的十五年演进

2008年8月,Netflix的数据库损坏导致DVD配送业务完全停滞了三天。这次事故的直接原因是数据库系统没有正确处理硬件故障,但更深层的原因是工程师们对系统在真实故障场景下的行为缺乏信心。Netflix当时的工程总监发问:“我们怎样才能确保这种事不再发生?“团队给出的答案是:让故障更频繁地发生。 ...

13 min · 6402 words

数据流太快会撑爆内存?背压机制为何是异步系统的安全阀

2015年,一家电商平台在促销活动中遭遇了一场诡异的生产事故。订单服务正常运行,CPU占用率不到30%,内存却以每秒数百兆的速度增长,最终触发了OOM Killer。运维团队排查了三天,才在日志里发现一条不起眼的错误信息:MissingBackpressureException。 ...

12 min · 5514 words

查询优化器的致命误判:为什么数据库有时会选错执行计划

2015年,慕尼黑工业大学的研究团队做了一个实验:他们把PostgreSQL查询优化器的基数估计值全部替换成真实值,然后观察113个复杂查询的执行时间变化。 ...

8 min · 3706 words