
字节笔记本
2026年10月1日 · 约 4 分钟读完
从 GIMP 到 CockroachDB:一位 CTO 的分布式存储三十年
The Pragmatic Engineer 最新一期请到了分布式数据库圈的大人物:Cockroach Labs 联合创始人兼 CTO Peter Mattis。他的履历横跨开源与工业两界,大学宿舍里与 Spencer Kimball 共同写出 GIMP(后来连 Google 最初版本的 logo 都出自 GIMP),加入 Google 后参与 Gmail 和分布式存储 Colossus,再出来创办 CockroachDB。这场对话相当于一部分布式存储三十年简史。

B-tree 无处不在
访谈里最有味道的技术线索是 B-tree 的持久统治力:Gmail 的线程和未读计数靠它跟踪,Peter 曾用 B-tree 替代 std::map 做出更快更省内存的实现,CockroachDB 的 range index 还是它。但 Colossus 因为是 append-only 设计,Spanner 反而不能用 B-tree,改用了 LSM tree;Google 用 LevelDB 推广了 LSM,RocksDB 是其分支,CockroachDB 早期用 RocksDB,直到 2019 年 Peter 亲自写了 Pebble 开源替代。选型故事背后是一个朴素的道理:没有最好的数据结构,只有匹配读写模式的结构。

几颗冷知识彩蛋:Gmail 2004 年 4 月 1 日发布 1GB 免费存储,被大量用户当成愚人节玩笑;Colossus 用 Reed-Solomon 纠删码把存储开销降低 33% 的同时冗余反而更高;Peter 当年嫌通勤太长拒绝过 Sergey Brin 的 offer,后来才加入 Google;他还两次"打败"标准库,除 B-tree 版 std::map 外,Swiss Table 后来并入了 Go 标准库。
AI 时代的工程判断
作为前 Google C++ readability reviewer,Peter 的预言是:"我们将实质性地停止看代码",就像高级工程师早已不再逐行看汇编。AI 让转向管理岗的他重新写起了代码且不牺牲质量;Cockroach Labs 的非工程师在几个月内搭了约 1,000 个内部应用。他的自我比喻是"带一群研究助理的教授",并行启动多个实验,而不是串行盯一行代码。
给开发者的建议同样实在:别因为竞品更炫的预告就放弃自己的项目(GIMP 差点因此流产,而那个竞品后来消失了);把光速、网络延迟这些"速度常数"记在脑子里做 napkin math;理解底层数据结构(知道 std::map 是红黑树、每节点两个指针,才会想到换 B-tree 吃空间局部性);分布式共识至少三个副本,CockroachDB 默认三个,部分系统表最多五个;跨全球最快路径竟是 Starlink 激光经太空传输,zone 内延迟则已从毫秒级降到约 100 微秒。
适合谁听
后端与基础设施工程师:B-tree 与 LSM 的取舍史就是一部"按读写模式选结构"的活教材。
开源项目作者:GIMP 到 CockroachDB 的职业路径示范了"从开源作品到创业公司"的完整闭环。
被 AI 焦虑包围的工程师:一位写过 GIMP、建过分布式数据库的老将选择拥抱 AI 并押注"领域专家被放大"的未来,这个态度本身就是答案。



