기능 및 제한사항

이 페이지에서는 벡터 검색 기능 및 제한사항에 대해 자세히 설명합니다.

가용성

벡터 검색은 모든 등급과 지원되는 모든 리전의 모든 Memorystore for Valkey 버전에서 사용할 수 있습니다.

2024년 9월 13일 출시일 이후에 생성된 인스턴스에서만 벡터 검색을 사용 설정할 수 있습니다.

색인 제한사항

다음은 색인의 제한사항을 요약한 것입니다.

  • 색인의 최대 속성 수는 10개를 초과할 수 없습니다.
  • 벡터의 측정기준은 32,768개를 초과할 수 없습니다.
  • HNSW의 M 값은 2M을 초과할 수 없습니다.
  • HNSW의 EF Construct 값은 4,096을 초과할 수 없습니다.
  • HNSW의 EF 런타임 값도 4,096을 초과해서는 안 됩니다.

성능에 미치는 영향

벡터 검색의 성능을 고려할 때 몇 가지 중요한 변수를 고려해야 합니다.

노드 유형

벡터 검색은 벡터 검색 작업 실행 전용 스레드 풀을 통합하여 세로 확장을 용이하게 합니다. 즉, 성능은 클러스터의 각 노드에 있는 vCPU 수와 연결됩니다. 각 노드 유형에서 사용할 수 있는 vCPU 수에 관한 자세한 내용은 클러스터 및 노드 사양을 참고하세요.

샤드 수

Memorystore for Valkey는 모든 벡터에 로컬 색인 생성 기법을 구현합니다. 즉, 각 샤드에 저장된 색인에는 해당 샤드에 포함된 문서만 포함됩니다. 따라서 색인 생성 속도와 총 벡터 수는 클러스터의 샤드 수에 따라 선형적으로 확장됩니다.

각 로컬 색인에는 단일 샤드의 콘텐츠만 포함되므로 클러스터를 검색하려면 클러스터의 각 샤드를 검색하고 결과를 집계해야 합니다. 벡터의 양이 안정적인 경우 샤드 수를 늘리면 각 로컬 색인에 포함되는 벡터 수가 줄어들기 때문에 HNSW 색인의 경우 검색 성능이 대수적으로, FLAT 색인의 경우 선형적으로 개선됩니다.

모든 샤드를 검색하는 데 필요한 작업량이 증가하므로 샤드가 추가될수록 특정 검색 요청을 완료하는 데 관찰되는 지연 시간이 늘어날 수 있습니다. 그럼에도 불구하고 가장 큰 클러스터도 한 자릿수 밀리초의 지연 시간을 지원합니다.

복제본 수

복제본을 추가하면 읽기 복제본에 대한 검색 요청의 부하 분산을 허용하여 검색 처리량이 선형적으로 증가합니다.

이벤트 확장

Memorystore for Valkey 인스턴스의 크기를 조절하면 색인 내 문서가 새 샤드 수에 걸쳐 데이터를 균일하게 분산하도록 이동됩니다. 이 경우 노드 간에 이동된 문서가 백그라운드에서 색인이 생성됩니다. 확장 작업이 완료되면 FT.INFO 출력에서 mutation_queue_size 값을 모니터링하여 클러스터 크기 조정으로 인한 색인 재생성 진행 상황을 확인할 수 있습니다.

메모리 소모

벡터는 키 공간과 벡터 검색 알고리즘 모두에 저장되므로 중복됩니다.

트랜잭션

스레드 풀에서 태스크를 실행하는 비동기 특성으로 인해 벡터 검색 작업은 트랜잭션 시맨틱스를 준수하지 않습니다.