gordonmurray/firnflow

The cost efficiency of S3 with the speed of local RAM. A multi-tenant vector and full-text search engine featuring a tiered RAM -> NVMe -> S3 architecture for microsecond latency on top of object storage

解決的問題

Firn 是一個專為消除始終在線、昂貴的搜尋叢集需求而設計的多租戶向量與全文搜尋引擎。它允許團隊直接在廉價的物件儲存(如 AWS S3、Google Cloud Storage 或 MinIO)上執行高效率搜尋,同時透過分層快取系統維持低延遲。

工作原理

Firn 使用分層儲存架構來平衡成本與速度:

  • L1(RAM)與 L2(NVMe): 透過 foyer 實現的混合快取,將頻繁查詢結果儲存在微秒級可檢索的快取中。
  • L3(物件儲存): 數據儲存在隔離的命名空間中,使用 LanceDB 作為資料來源。
  • 可選的物件快取: 本地 NVMe 層,用於快取 LanceDB 從物件儲存中讀取的原始位元組,加速非重複的新查詢。
  • 索引: 使用 IVF_PQ 索引使物件儲存上的冷查詢變得實用(將延遲從約 25 秒降低至約 979 毫秒),並使用 BM25 索引支援全文搜尋。

適用對象

適用於管理多租戶 SaaS 工作負載、私人 RAG 部署的團隊,或希望以自托管、低閒置成本的替代方案取代 OpenSearch、Elasticsearch 或 Vespa 等重型服務的使用者。

主要亮點

  • 原生多租戶: 每個命名空間在獨立的物件儲存前置詞中物理隔離。
  • 混合搜尋: 支援向量搜尋、BM25 全文搜尋以及融合混合搜尋。
  • 晚期互動搜尋: 支援多向量結構(如 ColBERT、ColPali),以處理複雜的組合查詢。
  • CAS 一致性: 使用條件寫入原語,確保並行寫入者之間的資料完整性。
  • 運維可見性: 內建 Prometheus 指標,用於追蹤快取命中率與儲存成本。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案