Perplexity 用两名工程师和两个月构建 Rust 自研数据库 CobbleDB 替代 DynamoDB
两名工程师、两个月、4 万行 Rust:DynamoDB 太贵又慢,Perplexity 决定自己造
Perplexity 将核心搜索服务从 Amazon DynamoDB 迁移至内部自研分布式键值存储 CobbleDB,旨在解决大语言模型检索场景下的高延迟和高成本问题。该迁移通过解耦持久化文档存储与热数据层检索,在每秒超过 20 万次请求的生产流量规模下,将批量读取延迟降低了五倍,并使整体存储费用至少下降了 20%。
CobbleDB 由约 4 万行 Rust 代码组成,采用 RocksDB 作为嵌入式存储引擎,结合内存映射缓存与本地 NVMe 固态硬盘。其架构包含三个专用系统:基于 YTsaurus 的 Pillar 负责持久状态管理,Lorry 充当无状态队列消费者进行批量聚合,而 CobbleDB 则专注于低延迟服务。为了优化性能,系统舍弃了标准的分布式事务协议和同步共识算法,允许副本异步应用更新以容忍最终一致性,并通过推测性对冲(speculative hedging)减少网络开销。
实测数据显示,CobbleDB 将批量读取延迟中位数从 31.4 毫秒降至 5.60 毫秒,p99 尾延迟从 123 毫秒降至 24.2 毫秒,且在每秒最多 50 万次请求的规模下吞吐量保持稳定。尽管该系统带来了节点生命周期管理和备份验证等运维负担,但 Perplexity 表示计划在即将发布的版本中开源 CobbleDB 代码库。事实层面确认了架构细节与性能指标,推断部分认为这种模式可能成为其他 AI 应用应对云数据库成本瓶颈的参考路径,猜测则涉及未来开源后的社区采纳程度。
材料披露了自建存储的架构细节与成本收益,为高并发检索场景提供了可验证的工程替代方案。
来源:InfoQ 中文 · infoq.cn