En esta página, se proporcionan detalles sobre las funciones y limitaciones de la búsqueda vectorial.
Disponibilidad
La búsqueda vectorial está disponible en todas las versiones de Memorystore para Valkey en todos los niveles y en todas 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 de í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 EF Construct para HNSW no debe exceder los 4,096.
- El valor de tiempo de ejecución de EF para HNSW tampoco debe superar los 4,096.
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 vectorial facilita la escalabilidad vertical a través de la integración de grupos de subprocesos dedicados a ejecutar operaciones de búsqueda vectorial. 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 CPUs virtuales disponibles en cada tipo de nodo, consulta Especificaciones 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. Por lo tanto, la velocidad de indexación y la cantidad de vectores totales se escalarán de forma lineal con la cantidad de fragmentos en el clúster.
Dado que cada índice local solo contiene el contenido de un solo fragmento, la búsqueda en el clúster requiere buscar en cada fragmento del 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 en 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
Si agregas réplicas adicionales, se aumentará la capacidad de procesamiento de la búsqueda de forma lineal, ya que se permitirá el balanceo de cargas de las solicitudes de búsqueda para las réplicas de lectura.
Eventos de escalamiento
Cuando cambies el tamaño de tu instancia de Memorystore para Valkey, los documentos dentro de tus índices se moverán para distribuir los datos de forma uniforme 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 de FT.INFO para ver el progreso de la nueva indexación debido al cambio de tamaño del clúster.
Consumo de memoria
Los vectores se duplican y se almacenan dentro del espacio de claves y el algoritmo de búsqueda de vectores.
Transacciones
Debido a la naturaleza asíncrona de la ejecución de tareas por conjuntos de subprocesos, las operaciones de búsqueda de vectores no se adhieren a la semántica transaccional.