错误处理为何分裂五十年:从PL/I的ON语句到Rust的Result类型
1964年,IBM开始设计PL/I语言,并引入了一个名为ON的语句。程序员可以用ON ENDFILE(SYSIN) GO TO LABEL;来指定当文件结束时跳转到特定标签。这是编程语言史上第一次将"异常情况处理"作为一等语言特性。 ...
1964年,IBM开始设计PL/I语言,并引入了一个名为ON的语句。程序员可以用ON ENDFILE(SYSIN) GO TO LABEL;来指定当文件结束时跳转到特定标签。这是编程语言史上第一次将"异常情况处理"作为一等语言特性。 ...
2016年2月8日,分布式系统研究员Martin Kleppmann发表了一篇博客文章,标题直截了当:《如何正确实现分布式锁》。文章开篇就对Redis官方文档中的Redlock算法提出了尖锐批评,结论是"这个算法不适合用于正确性依赖于锁的场景"。 ...
1948年,贝尔实验室的Claude Shannon在《Bell System Technical Journal》上发表了一篇论文——“A Mathematical Theory of Communication”。这篇论文定义了一个被称为"熵"的量: ...
2018年,一个技术团队在生产环境遇到了一个诡异的现象:每当数据库响应变慢,整个服务集群就会在几分钟内完全瘫痪。排查后发现,罪魁祸首是健康检查——当数据库变慢时,应用的健康检查端点开始超时,负载均衡器将服务器标记为不健康,剩余服务器承受更多流量,进一步恶化,形成恶性循环。 ...
1986年10月,Lawrence Berkeley Laboratory(LBL)与加州大学伯克利分校之间的网络连接出现了一个令人困惑的现象:两地相隔仅400码,中间只经过两个IMP(Interface Message Processor)跳转,正常情况下数据吞吐量应维持在32 Kbps左右,但在这段时间里,吞吐量骤降至40 bps——下降了近1000倍。 ...
2015年,Rust核心团队成员Aaron Turon发布了一个名为Crossbeam的库。他在博客中写道:“如果我问Rust社区,构建锁-free数据结构最大的障碍是什么,答案几乎总是一样的——内存管理。” ...
2005年,卡内基梅隆大学的研究人员进行了一项有趣的实验。他们在校园网络的边缘路由器上部署了四种不同的限流算法,然后用真实流量和Blaster蠕虫攻击数据进行测试。结果令人意外:表现最差的算法错误率高达30%,而表现最好的算法错误率低于1%。 ...