Core Concepts
기존 SSD 기반 그래프 및 클러스터 인덱스는 성능 향상을 위해 인덱스 크기를 크게 늘려야 하는 문제가 있다. 이를 해결하기 위해 두 번째 계층 메모리를 활용하면 인덱스 크기를 크게 줄이면서도 최적의 성능을 달성할 수 있다.
Abstract
이 논문은 십억 단위 벡터 데이터셋에 대한 근사 최근접 이웃 검색(ANNS) 인덱스의 성능과 크기 간 트레이드오프 문제를 다룬다.
기존 SSD 기반 그래프 및 클러스터 인덱스는 성능 향상을 위해 인덱스 크기를 크게 늘려야 한다. 그래프 인덱스는 엣지 수를 늘려 탐색 횟수를 줄이고, 클러스터 인덱스는 복제를 늘려 검색 클러스터 수를 줄인다. 이로 인해 인덱스 크기가 원본 데이터셋 대비 최대 7.7배까지 증가한다.
이 문제의 근본 원인은 SSD의 코스 그레인 접근 방식이 벡터 인덱스의 파인 그레인 랜덤 읽기 요구사항과 부합하지 않기 때문이다.
이 논문은 두 번째 계층 메모리(RDMA, CXL, NVM 등)가 이 문제를 해결할 수 있는 대안이 될 수 있다고 주장한다. 두 번째 계층 메모리는 파인 그레인 접근 및 불규칙 I/O에 강인하기 때문에, 기존 인덱스 설계를 개선하면 인덱스 크기를 크게 줄이면서도 최적의 성능을 달성할 수 있다.
구체적으로 저자들은 두 가지 개선 설계를 제안한다:
그래프 인덱스: 소프트웨어 파이프라인과 압축 레이아웃을 통해 인덱스 크기를 1.7-4.1배로 줄이면서도 SSD 대비 2.3-4.1배 성능 향상
클러스터 인덱스: 벡터와 클러스터를 분리하는 디커플드 레이아웃과 클러스터 인식 그룹핑을 통해 인덱스 크기를 1.1-1.4배로 줄이면서도 SSD 대비 1.5-3.5배 성능 향상
이를 통해 저자들은 두 번째 계층 메모리가 벡터 검색 인덱스의 성능과 크기 간 딜레마를 해결할 수 있는 강력한 대안임을 보여준다.
Stats
그래프 인덱스의 경우 SSD 대비 2.3-4.1배 성능 향상, 인덱스 크기는 1.7-4.1배
클러스터 인덱스의 경우 SSD 대비 1.5-3.5배 성능 향상, 인덱스 크기는 1.1-1.4배
Quotes
"기존 SSD 기반 그래프 및 클러스터 인덱스는 성능 향상을 위해 인덱스 크기를 크게 늘려야 하는 문제가 있다."
"두 번째 계층 메모리는 파인 그레인 접근 및 불규칙 I/O에 강인하기 때문에, 기존 인덱스 설계를 개선하면 인덱스 크기를 크게 줄이면서도 최적의 성능을 달성할 수 있다."