Funciones y limitaciones

En esta página, se proporcionan detalles sobre las funciones y limitaciones de la búsqueda vectorial.

Disponibilidad

La búsqueda de vectores está disponible en todas las versiones de Memorystore para Valkey en todos los niveles y las regiones compatibles.

Solo las instancias creadas después de la fecha de lanzamiento del 13 de septiembre de 2024 tienen habilitada la búsqueda de vectores.

Restricciones del índice

A continuación, se describen las limitaciones del índice:

  • La cantidad máxima de atributos en un índice no puede superar los 10.
  • La dimensión de un vector no puede superar los 32,768.
  • El valor de M para HNSW no debe superar los 2 millones.
  • El valor de la construcción de EF para HNSW no debe exceder 4096.
  • El valor del entorno de ejecución de EF para HNSW tampoco debe superar 4096.

Impactos en el rendimiento

Cuando se considera el rendimiento de la búsqueda de vectores, hay algunas variables importantes que se deben tener en cuenta.

Tipo de nodo

La búsqueda de vectores facilita el escalamiento vertical a través de la integración de grupos de subprocesos dedicados a ejecutar operaciones de búsqueda de vectores. Esto significa que el rendimiento estará vinculado a la cantidad de CPU virtuales en cada nodo de tu clúster. Para obtener detalles sobre la cantidad de CPU virtuales disponibles en cada tipo de nodo, consulta Especificación de clústeres y nodos.

Cantidad de fragmentos

Memorystore para Valkey implementa una técnica de indexación local para todos los vectores. Esto significa que el índice almacenado en cada fragmento contiene solo los documentos que se encuentran en ese fragmento. Debido a esto, la velocidad de indexación y la cantidad total de vectores se escalarán linealmente con la cantidad de fragmentos en el clúster.

Dado que cada índice local solo contiene el contenido de un fragmento único, para realizar una búsqueda en el clúster es necesario buscar cada fragmento en el clúster y agregar los resultados. Con una cantidad estable de vectores, aumentar la cantidad de fragmentos mejorará el rendimiento de la búsqueda de forma logarítmica para los índices HNSW y de forma lineal para los índices FLAT, ya que se incluyen menos vectores en cada índice local.

Ten en cuenta que debido a la mayor cantidad de trabajo necesario para buscar todos los fragmentos, la latencia observable para completar una solicitud de búsqueda determinada puede aumentar a medida que se agregan más fragmentos. A pesar de esto, incluso los clústeres más grandes admiten latencias de milisegundos de un solo dígito.

Cantidad de réplicas

Agregar réplicas adicionales aumentará la capacidad de procesamiento de búsqueda de manera lineal, ya que permitirá el balanceo de cargas de solicitudes de búsqueda para réplicas de lectura.

Cómo escalar eventos

Cuando se cambia el tamaño de tu instancia de Memorystore para Valkey, los documentos de tus índices se moverán para distribuir de manera uniforme los datos en el nuevo recuento de fragmentos. Cuando esto suceda, los documentos que se muevan entre nodos se indexarán en segundo plano. Una vez que se complete la operación de escalamiento, puedes supervisar el valor de mutation_queue_size en el resultado FT.INFO para ver el progreso de la reindexación debido al cambio de tamaño de tu clúster.

Consumo de memoria

Los vectores se duplican y se almacenan dentro del espacio de claves y en el algoritmo de búsqueda vectorial.

Transacciones

Debido a la naturaleza asíncrona de la ejecución de tareas mediante conjuntos de subprocesos, las operaciones de búsqueda de vectores no cumplen con la semántica transaccional.