
백엔드
Milvus: LINE VOOM의 실시간 추천 시스템을 위한 대규모 벡터 DB 구축기
두줄요약
Milvus를 도입해 LINE VOOM 추천 시스템을 실시간 구조로 전환한 과정을 다뤘습니다. 카오스 테스트와 성능 테스트로 안정성과 성능을 검증해 즉시성을 크게 높였습니다.
문제 상황
- LINE VOOM 추천 후보군이 오프라인 배치 중심으로 갱신되어 포스트 생성 후 반영까지 최대 하루 소요
- 신선한 콘텐츠를 즉시 추천하지 못해 즉시성 저하와 사용자 경험 악화 발생
원인 분석
- 포스트 임베딩 저장과 유사성 검색이 모두 오프라인 작업에 의존
- 추천 후보군을 미리 계산해 인메모리 DB에 적재하는 구조라 온라인 반영 한계 존재
해결 방법
- 임베딩 저장소와 유사성 검색을 온라인으로 전환하기 위해 벡터 DB 도입
- 오픈소스·온프레미스·저지연·고부하 안정성 기준으로 Milvus 채택
- 카오스 테스트와 성능 테스트로 클러스터 안정성, HNSW 성능, 스케일 업/아웃, 인메모리 복제 효과 검증
성능/운영 포인트
- 컬렉션 이중 기록과 alias switching으로 컬렉션 단위 고가용성 구성
- 코디네이터 active-standby, MinIO 기반 백업 서버, Birdwatcher로 장애 대응력 강화
- HNSW에서 낮은 지연 시간과 높은 처리량 확인, 자원 확장에 따라 성능 개선 관찰