高性能数据库的瓶颈真不在网络或查询优化器——而是操作系统内核、内存碎片化和不可预测的尾延迟。TigerBeetle 用 Zig 写了一套金融账本数据库,从根本上挑战传统数据库架构。
核心设计原则:
- 单线程事件循环,避免锁和并发开销
- 128 字节固定大小的 Account 和 Transfer 结构体——刚好对齐 CPU 缓存行和磁盘扇区,内存表示即磁盘表示,零拷贝写入
- 静态内存分配,编译时确定所有缓冲区大小,用 O_DIRECT 绕开内核页缓存
- Zig comptime(编译时计算)实现零开销抽象;NASM 手写汇编实现超 128 位整数运算
- VSR 共识协议(Viewstamped Replication),单主复制,专注于确定性低延迟
- 自定义客户端协议替代 gRPC/HTTP——严格控制序列化、避免堆分配、消除 head-of-line 阻塞
关键理念:不应该写一个慢的通用引擎然后靠索引和缓存「优化」,而应该从硬件层面倒推设计——CPU 缓存行、磁盘扇区、DMA 传输——从第一性原理出发建一个快的专用引擎。