turbopuffer 是一个无服务器搜索引擎,最初作为针对近似最近邻(ANN)搜索优化的向量数据库推出,能够处理超过 1 万亿份文档和每秒 1000 万次写入。在其前两个版本中,系统将所有文档数据存储为基于由分层聚类索引(SPFresh)得出的 ANN 地址的键,使得 ANN 索引成为主索引,属性过滤、全文搜索及其他查询计划均围绕其展开。

图像展示了 turbopuffer 的徽标,代表了文章中讨论的从向量优先到二级索引的架构变更的公司。
这种设计导致了三个主要限制:存储放大,多向量文档需要在每个向量的 ANN 地址下复制非向量数据;写入放大,因为更新期间的任何向量再均衡都会强制移动完整文档以及所有相关的属性和全文搜索索引;以及向量化受限,由于 ANN 索引的最优簇大小为 100–200 份文档,这限制了其他查询计划的块大小,阻碍了高效的 CPU 利用,直至 turbopuffer v2 将全文搜索重新工作为固定的 256 文档块。
在 turbopuffer v3 中,公司正在将文档存储与 ANN 索引解耦,使 ANN 仅成为另一个二级索引,从而让每种查询类型都能够以最优方式存储和索引。博客文章指出,v3 已实现 100% 的持续集成成功,团队目前正专注于性能改进,计划在未来几周公开分享基准测试结果,因为他们正在努力达到并在生产推出前超过性能平衡点。