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초에서 약 979ms로 감소), 풀텍스트 검색에는 BM25 인덱스를 사용합니다.
대상 사용자
다중 테넌트 SaaS 워크로드를 관리하는 팀, 개인 RAG 배포, 또는 OpenSearch, Elasticsearch, Vespa와 같은 무거운 서비스를 자체 호스팅하고 저대기 비용 대안으로 교체하고자 하는 사용자에게 적합합니다.
주요 특징
- 디자인상 다중 테넌트: 각 네임스페이스는 고유한 객체 저장소 접두사에 물리적으로 격리되어 있습니다.
- 하이브리드 검색: 벡터 검색, BM25 풀텍스트 검색, 그리고 융합 하이브리드 검색을 지원합니다.
- 지연 상호작용 검색: ColBERT, ColPali와 같은 다중 벡터 형태를 지원하여 복잡한 조합 쿼리를 처리할 수 있습니다.
- CAS 일관성: 조건부 쓰기 프리미티브를 사용해 동시 쓰기자 간의 데이터 무결성을 보장합니다.
- 운영 가시성: 캐시 히트 및 스토리지 비용을 추적할 수 있도록 내장된 Prometheus 메트릭을 제공합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트