Actor模型为何能统治并发编程五十年从1973年理论到WhatsApp二十亿连接的技术博弈

一个数学模型如何重新定义并发 1973年,麻省理工学院的Carl Hewitt在IJCAI会议上发表了一篇论文,提出了一个看似简单的问题:如果我们将"计算"的最基本单位从函数改为"演员"(Actor),会发生什么?这个问题看似学术,却在随后的五十年里彻底改变了我们构建并发和分布式系统的方式。 ...

16 min · 7814 words

开放表格式的元数据层战争:从Hive目录列表到三层快照架构的十年技术突围

2015年,Uber的工程师们面临一个看似无解的困境:他们的数据湖每天要处理数十亿次行程更新,每次行程的状态都可能从"进行中"变成"完成",甚至可能被取消。用传统数据湖的方式——把数据写入Parquet文件就不管了——根本行不通。每次更新都需要重写整个分区,删除操作更是噩梦。 ...

21 min · 10504 words

为什么Kademlia统治了P2P世界二十年:从XOR距离到k-bucket的技术突围

引言:从Napster的覆灭说起 1999年,东北大学学生Shawn Fanning创建了Napster,一个让全球用户自由交换MP3音乐文件的平台。短短两年内,Napster积累了超过8000万注册用户。然而,这种繁荣建立在沙滩之上——Napster采用中央索引服务器架构,所有文件的元数据都存储在公司控制的服务器上。当唱片业的大棒挥下,只需关闭这几台服务器,整个网络就土崩瓦解。 ...

16 min · 7906 words

DPDK如何在十五年间重塑高速网络处理从内核旁路到用户态数据平面的技术博弈

2010年,Intel工程师Venky Venkatesan面对一个困扰网络设备厂商多年的问题:随着万兆以太网(10GbE)的普及,传统Linux内核网络栈的处理能力已经捉襟见肘。一颗CPU核心每秒只能处理不到两百万个最小尺寸的TCP包,而一张10G网卡理论上可以灌入14.88 Mpps(packets per second)的流量。这个吞吐量鸿沟并非来自硬件瓶颈,而是软件架构的历史包袱。 ...

22 min · 10529 words

MIDI协议为何能用一根电缆连接整个电子音乐世界从1983年的行业标准统一到2020年MIDI 2.0的四十年技术演进

1981年的一个决定 1981年6月,芝加哥NAMM展会。Roland创始人梯郁太郎找到了Tom Oberheim。 当时的电子乐器市场正处于一个尴尬的境地:每家厂商都有自己的连接标准。Roland有DCB(Digital Control Bus),Oberheim有Parallel Bus,Sequential Circuits有自己的数字接口,Yamaha、Korg、Kawai各家都不一样。一个音乐人如果想把Roland的合成器连上Sequential的音序器,基本是不可能的事。 ...

20 min · 9558 words

核反应堆安全系统的七十年演进:从主动防御到被动安全的范式转变

引言:核安全的核心矛盾 1942年12月2日,芝加哥大学体育馆的壁球场下,Enrico Fermi点燃了人类历史上第一座核反应堆Chicago Pile-1。当控制棒缓缓抽出,中子计数器的咔嗒声越来越快,最终汇聚成稳定的嗡鸣——人类第一次实现了可控的自持核裂变链式反应。然而,Fermi和他的团队当时并未完全意识到,他们同时开启了一场持续七十余年的安全与技术博弈。 ...

24 min · 11716 words

链接器与加载器:从符号解析到动态链接的四十年技术演进

程序构建的沉默机械 每个程序员都写过编译命令,但很少有人真正理解ld在做什么。当编译器完成了词法分析、语法分析、中间代码生成、优化和目标代码生成后,它产出了一个或多个目标文件。这些文件包含了机器码,但还不能执行——它们之间存在引用关系,全局变量的地址未确定,外部函数的位置未知。链接器的任务就是将这些分散的碎片组装成一个完整的程序。 ...

18 min · 8891 words