9P by neo 2달전 | favorite | 댓글 1개
  • 2022년 말, Readwise의 인프라를 확장하면서 기사 추천 및 벡터 임베딩을 사용한 의미 검색 기능을 추가하려 했음
  • 관계형 데이터베이스 비용이 월 $5k였으나, 벡터 검색 비용은 월 $20k 이상이어서, 높은 비용 때문에 기능 구현을 포기
  • 기존 검색 엔진은 비싸고 운영이 어려움 : 객체 저장소, NVMe SSD, AI 및 벡터 기술의 발전으로 새로운 검색 엔진이 필요함
  • 기존 벡터 데이터베이스는 인메모리 저장소를 사용해 비용이 높음
    • 객체 저장소(S3, GCS)와 SSD 캐싱을 활용해 비용을 크게 절감할 수 있음
    • 예: 인메모리 저장소는 $2+/GB, 객체 저장소는 $0.02/GB

turbopuffer의 설계

  • 현재에 맞는 검색 엔진을 개발
  • 객체 저장소와 스마트 캐싱을 활용해 비용 효율성과 성능을 모두 달성
  • 수십억 개의 벡터와 수백만 개의 테넌트를 처리할 수 있음
  • 객체 저장소 기반 검색 엔진
    • 기존 검색 엔진은 관계형 데이터베이스의 복제 디스크 아키텍처를 사용
    • 검색 엔진은 높은 쓰기 처리량과 느슨한 쓰기 지연 시간을 요구
    • 객체 저장소와 SSD/메모리 캐싱을 통해 비용을 절감하면서 성능을 유지
  • 객체 저장소 Native 데이터베이스 구현
    • 객체 저장소를 기본으로 하는 데이터베이스를 구축
    • 높은 신뢰성과 무제한 확장성을 제공
    • 멀티 테넌시와 샤딩을 통해 높은 가용성을 유지
  • 고객 사례
    • Cursor: AI 코드 편집기, 수십억 개의 벡터를 관리하며 비용을 10배 절감
    • Suno: 라디오 기능
    • Dot: 메모리 기능
    • Shapes: 메모리 기능

GN⁺의 정리

  • turbopuffer는 객체 저장소와 스마트 캐싱을 활용해 검색 엔진의 비용 효율성과 성능을 크게 개선함
  • 기존 검색 엔진의 높은 비용과 운영의 어려움을 해결하고자 함
  • AI 및 벡터 기술의 발전에 맞춰 새로운 검색 엔진을 설계함
  • Cursor와 같은 초기 고객 사례를 통해 비용 절감과 성능 향상을 입증함
  • 유사한 기능을 가진 다른 프로젝트로는 ElasticSearch와 Vector DBs가 있음
Hacker News 의견
  • Simon과 함께 일해본 경험이 있으며, 그는 자신의 분야에 능통함

    • Shopify에서 검색 관련 작업을 함께 했으며, 이상적인 검색 스택에 대해 많은 대화를 나눔
    • 클라우드에서 검색 API를 통해 랭킹을 표현하고, 데이터프레임 수학을 사용하여 다양한 속성으로 부스트하는 이상적인 시스템을 원함
  • Turbopuffer가 Polars 데이터프레임처럼 동작하여 검색 API에서 랭킹을 표현할 수 있기를 바람

    • 데이터프레임 수학을 사용하여 첫 번째 패스를 수행하고, 재랭킹 모델을 실행하는 기능을 원함
  • Fixie.ai의 웹사이트 디자인도 매우 마음에 듦

    • Fixie.ai는 Turbopuffer의 고객 중 하나임
  • Hetzner에서 RAM 비용이 $200/TB/월로, 다른 곳보다 18배 저렴함

    • 복잡성을 줄이면 목표를 더 빨리 달성할 수 있음
  • 2022년 이전부터 pg_vector가 존재했으며, 인메모리 스토리지가 필요하지 않음

    • 1억 개 이상의 문서에 대해 벡터 검색을 수행할 수 있음
  • Lucene을 사용하여 SSD 캐시 노드를 객체 스토리지 앞에 두는 접근 방식을 구축하는 것이 가능한지 궁금함

    • Elasticsearch의 대규모 배포를 목격한 경험이 있으며, 모든 것을 S3에 넣을 수 있다면 놀라울 것임
  • Quickwit의 소스 비공개 버전처럼 들림

  • S3에 대용량 읽기 전용 데이터베이스를 저장하고 직접 조회할 수 있는 일반적인 솔루션이 있는지 궁금함

    • Duckdb가 parquet 파일을 http로 열고 쿼리할 수 있지만, 많은 작은 요청을 트리거함
    • 수백만 개의 객체를 관리하기 위해 단일 파일과 캐시 가능한 인덱스를 원함
  • ClickHouse의 읽기 지연 시간은 100ms 이하, 쓰기 지연 시간은 1초 이하임

    • ClickHouse는 로깅, 실시간 분석, RAG에도 적합함
  • 벡터 데이터베이스에 대해 잘 알지 못하지만, RAG 및 기타 AI 관련 작업에 주로 사용된다고 생각함

    • 더 깊이 탐구할 필요가 있음
  • 객체 스토리지 우선 접근 방식이 클라우드에 자연스럽게 맞는다고 생각함