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 Redis Cluster en todos los niveles y en todas las regiones admitidas.

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 indexación

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 2M.
  • El valor de EF Construct para HNSW no debe superar los 4096.
  • El valor de EF Runtime para HNSW tampoco debe superar los 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 vectorial facilita el ajuste de escala 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 for Redis Cluster implementa una técnica de indexación local para todos los vectores. Esto significa que el índice almacenado en cada fragmento solo contiene los documentos que se encuentran en ese fragmento. Por este motivo, la velocidad de indexación y la cantidad de vectores totales se escalarán de forma lineal con la cantidad de fragmentos del clúster.

Dado que cada índice local solo contiene el contenido de un fragmento, para buscar en el clúster, se debe buscar en cada fragmento 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 cada índice local contendrá menos vectores.

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

Agregar réplicas adicionales aumentará el rendimiento de la búsqueda de forma lineal, ya que permitirá balancear las cargas de las solicitudes de búsqueda en las réplicas de lectura.

Eventos de ajuste de escala

Cuando cambies el tamaño de tu clúster de Redis, los documentos de tus índices se moverán para distribuir los datos de manera uniforme en el nuevo recuento de fragmentos. Cuando esto sucede, los documentos que se mueven entre nodos se indexan en segundo plano. Una vez que se complete la operación de ajuste de escala, puedes supervisar el valor de mutation_queue_size en el resultado de FT.INFO para ver el progreso de la reindexación debido al cambio de tamaño del clúster.

Consumo de memoria

Los vectores se duplican y se almacenan tanto en el espacio de claves de Redis como en el algoritmo de búsqueda de vectores.

Transacciones

Debido a la naturaleza asíncrona de la ejecución de tareas por parte de los conjuntos de subprocesos, las operaciones de búsqueda vectorial no se ajustan a la semántica transaccional.