LLM WikiAccess-protected knowledge portal

WIKI

Weaviate 1.38: HFresh 디스크 벡터 인덱스·MCP 서버·비동기 복제 재구성으로 달라진 벡터 DB 운영 기준

왜 지금 봐야 하나 Weaviate 1.38은 세 가지 변화를 담은 릴리스다. 1. HFresh 디스크 기반 벡터 인덱스 GA. HNSW가 모든 벡터를 메모리에 올리는 구조였다면, HFresh는 클러스터 중심점만 메모리에 두고 나머지는 디스크에 유지한다. 수십억 규모 벡터를 비용 합리적으로 운영할 수 있는 구조다. 2. MCP Server GA. Claude, Codex 등의 AI 에이전트가 별도 코드 없이 Weaviate를

경로human/study/content/database-frontier/37-weaviate-1-38-hfresh-disk-index-mcp-server-async-replication.md
카테고리Study
태그#ai-review #async #infra #mcp #mysql #replication #server #study

왜 지금 봐야 하나

Weaviate 1.38은 세 가지 변화를 담은 릴리스다.

  1. HFresh 디스크 기반 벡터 인덱스 GA. HNSW가 모든 벡터를 메모리에 올리는 구조였다면, HFresh는 클러스터 중심점만 메모리에 두고 나머지는 디스크에 유지한다. 수십억 규모 벡터를 비용 합리적으로 운영할 수 있는 구조다.
  2. MCP Server GA. Claude, Codex 등의 AI 에이전트가 별도 코드 없이 Weaviate를 직접 읽고 쓸 수 있다. Weaviate를 에이전트의 장기 메모리 레이어로 붙이는 아키텍처가 표준화됐다.
  3. 비동기 복제 스케줄러 재구성. 노드별 분산 스케줄러에서 클러스터 단일 스케줄러로 바뀌었고, 복제된 컬렉션에서 기본값으로 켜진다.

이 세 변화는 서로 다른 문제를 건드린다. HFresh는 비용, MCP Server는 연동 방식, 비동기 복제는 가용성이다.


변화 한눈에 보기

항목이전(1.36 이전)1.38
디스크 벡터 인덱스Flat(브루트포스)만 존재HFresh GA (SPFresh 기반)
MCP Server기술 프리뷰 (1.36)GA
비동기 복제노드별 독립 스케줄러클러스터 단일 스케줄러, 기본 활성화
중첩 객체 필터링미지원기술 프리뷰 (21단계 구현)
Boost API미지원기술 프리뷰 (소프트 랭킹)
Query Profiling미지원스테이지·샤드별 타이밍 반환

HFresh: 메모리를 아끼는 벡터 인덱스의 구조

왜 HNSW는 메모리를 많이 쓰는가

HNSW(Hierarchical Navigable Small World)는 모든 벡터를 다층 그래프 노드로 연결한다. 쿼리가 들어오면 최상위 레이어에서 시작해 가장 가까운 이웃을 타고 내려오며 k-NN을 찾는다.

수십억 규모에서는 메모리 비용이 운영의 병목이 된다.

HFresh의 아이디어: 클러스터 + 디스크

HFresh는 SPFresh 알고리즘에서 영감을 받은 계층적 클러스터 기반 인덱스다.

구조는 두 계층으로 나뉜다.

쿼리가 오면 이렇게 동작한다.

  1. 메모리 HNSW로 쿼리에 가장 가까운 상위 k개 클러스터를 찾는다.
  2. 해당 클러스터의 포스팅 리스트를 디스크에서 읽어 후보 벡터를 모은다.
  3. 후보 벡터를 재점수화(rescoring)해서 최종 k-NN을 반환한다.
HNSW vs HFresh: 메모리·디스크 배치 비교 HNSW 메모리 (전체 벡터 + 그래프) 레이어 2 (최상위, 소수 노드) ← 긴 범위 이웃 연결 → 레이어 1 (중간, 더 많은 노드) ← 중범위 이웃 연결 → 레이어 0 (베이스 레이어 — 모든 벡터) V₁ ─ V₂ ─ V₃ ─ … ─ Vₙ (n=전체 벡터 수) float32: n × dim × 4 bytes + 그래프 오버헤드 메모리 사용량 예시 1억 벡터 × 1536-dim float32 ≈ 614 GB + 그래프 오버헤드 벡터 수 증가 → 선형 메모리 증가 수십억 규모: 수 TB 메모리 필요 디스크 (없음 — 모든 것이 메모리) HFresh 메모리 (클러스터 중심점만) 중심점 HNSW (8-bit RQ 압축) C₁ ─ C₂ ─ C₃ ─ … ─ Cₘ (m = 클러스터 수, m << n) 1억 벡터 → ~수천 중심점 디스크 LSM 스토어 (포스팅 리스트) 클러스터1 V₁,V₄,V₉… 1-bit RQ 압축 클러스터2 V₂,V₅,V₈… 1-bit RQ 압축 클러스터m V₃,V₆,V₇… 1-bit RQ 압축 메모리 사용량 예시 1억 벡터 × 1536-dim 메모리: ~수 GB (중심점만) 디스크: 벡터 수 비례 (수백 GB) 최근접 클러스터 선택 → 해당 포스팅만 읽음
HFresh vs HNSW: 메모리 사용 구조 비교

업데이트 방식: 전체 재구축 없음

HNSW에서는 대규모 삽입·삭제 후 주기적 재구축이 필요하다. HFresh는 증분 리밸런싱으로 이 문제를 피한다.

대부분의 삽입·삭제가 한정된 클러스터에만 영향을 미치기 때문에 전체 인덱스를 잠그지 않아도 된다.

HNSW vs HFresh: 언제 무엇을 쓰나

기준HNSWHFresh
메모리전체 벡터 비례중심점만 (수십 배 절약)
검색 지연시간낮음 (메모리 직접 접근)I/O 추가 (디스크 읽기 포함)
수십억 규모 운영비용 매우 높음실용적
정확도(Recall)높음재점수화로 유지 가능
인덱스 업데이트점진적 삽입 가능증분 리밸런싱
적합한 경우수백만 이하, 저지연 우선수억 이상, 메모리 비용 우선

같은 데이터셋이라도 HNSW에서 HFresh로 전환 시 지연시간이 늘어날 수 있다. 디스크 I/O를 피할 수 없기 때문이다. 운영 환경에서 99 퍼센타일 지연시간을 먼저 측정하고 전환 여부를 결정해야 한다.


MCP Server GA: Weaviate를 에이전트 장기 메모리로

무엇이 달라졌나

Weaviate 1.38에서 MCP Server가 GA가 됐다. 이 의미는 다음과 같다.

기본 알파 값이 0.75로 설정돼 있다. 이는 벡터 유사도보다 키워드 점수에 약간 더 비중을 두는 설정이다.

Prometheus 메트릭 통합

MCP Server 호출에 대한 Prometheus 메트릭이 추가됐다. 에이전트가 Weaviate를 얼마나 자주 호출하는지, 지연시간 분포가 어떻게 되는지 기존 모니터링 인프라로 추적할 수 있다.

운영 고려사항


비동기 복제 재구성: 단일 스케줄러

이전 구조의 문제

이전 비동기 복제는 각 노드가 독립적으로 복제 작업을 스케줄링했다. 이 방식에서 레이스 컨디션이 발생할 수 있었고, 복구 중 체크포인트 없이 재시작하면 어디까지 복제됐는지 파악하기 어려웠다.

새 구조

1.38에서는 클러스터 단일 스케줄러가 복제 작업을 조율한다.

이 변화로 인해 기존에 비동기 복제를 명시적으로 끈 경우, 1.38 업그레이드 후 기본 활성화 여부를 확인해야 한다.


Query Profiling과 나머지 변화

Query Profiling

쿼리 응답에 스테이지별·샤드별 타이밍 정보가 포함된다. 이전에는 느린 쿼리의 원인이 인덱스 접근인지, 포스트필터인지, 네트워크인지 구분하기 어려웠다. 이제 단일 쿼리 응답으로 병목 지점을 특정할 수 있다.

Boost API (기술 프리뷰)

결과 재정렬을 위한 소프트 랭킹 인터페이스가 추가됐다. 벡터 유사도 점수 외에 비즈니스 규칙(최신성, 조회수, 신뢰도 점수 등)을 추가 신호로 섞을 수 있다. 아직 기술 프리뷰 단계이므로 API가 변경될 수 있다.

Nested Object Filtering (기술 프리뷰)

JSON 속성 계층을 따라 필터를 걸 수 있는 기능이 추가됐다. LSM 스토어에 중첩 경로를 저장하고, 복잡한 AND 조건도 상관 관계를 유지하며 처리한다. gRPC·GraphQL 양쪽 경로에서 동작한다. 실 서비스 투입 전에 스키마 설계와 성능 특성을 충분히 테스트하는 것을 권장한다.


도입 체크리스트

HFresh 전환 판단

MCP Server 도입 판단

비동기 복제 기본 활성화 확인


한 줄 결론

Weaviate 1.38은 메모리 vs. 비용의 벡터 인덱스 딜레마에 HFresh로 답하고, MCP Server GA로 에이전트 장기 메모리 아키텍처를 표준화하며, 비동기 복제를 기본값으로 바꿔 가용성 기준을 올렸다. 세 변화 모두 운영 규모가 커질수록 영향이 커지는 종류다.

References