把搜索索引放到 S3 之后,设计要改什么 — Hacker News 中文摘要
来源:infino.ai — 6 分 · by tatvamasi · 3 条评论
📋 概述
Infino 的检索引擎把全文与向量索引直接建在对象存储上。文章指出关键约束变了:SSD 上一次随机读几乎免费,而 S3 上每一次随机读都是一次计费 HTTP GET,几十毫秒起步,所以最稀缺的资源不是 CPU 也不是字节,而是往返次数。为此他们把每个索引单元做成单个 Parquet 超级文件,把全文索引、向量索引的字节区间塞进 footer 元数据,任何一段都能用一次 range GET 取回;table 级 manifest 加指针文件原子切换,保证读者看到一致快照。
🔑 核心要点
- 每个索引单元(superfile)是一个 Parquet 文件,而不是 Lucene 那样一堆文件。
- 全文与向量索引作为字节区域拼在 footer 之前,位置记录在 Parquet footer 元数据里。
- 元数据带偏移量,因此任意索引段都能用一次 ranged GET 拿到。
- 写入生成新 superfile 与新 manifest,再原子替换指针文件,读者始终看到一致快照。
- 成本模型的结论:要优化的是往返次数,不是 CPU 或带宽。
💡 金句
The scarcest resource is not CPU, and not bytes, but the number of round trips you make to the object store
👍 0
👎 0
← 返回 Hacker News 首页