Nesta página, você encontra detalhes sobre os recursos e as limitações da pesquisa vetorial.
Disponibilidade
A pesquisa vetorial está disponível em todas as versões do Memorystore for Redis Cluster em todos os níveis e regiões compatíveis.
Somente as instâncias criadas após a data de lançamento, 13 de setembro de 2024, têm a pesquisa vetorial ativada.
Restrições de indexação
Confira abaixo as limitações do índice:
- O número máximo de atributos em um índice não pode exceder 10.
- A dimensão de um vetor não pode exceder 32.768.
- O valor de M para HNSW não pode exceder 2 milhões.
- O valor de EF Construct para HNSW não pode exceder 4.096.
- O valor do tempo de execução do EF para HNSW também não pode exceder 4096.
Impactos na performance
Ao considerar a performance da pesquisa vetorial, há algumas variáveis importantes a serem consideradas.
Tipo do nó
A pesquisa vetorial facilita o escalonamento vertical com a integração de pools de linhas de execução dedicados à execução de operações de pesquisa vetorial. Isso significa que o desempenho vai depender do número de vCPUs em cada nó do cluster. Para detalhes sobre o número de vCPUs disponíveis em cada tipo de nó, consulte Especificação de cluster e nó.
Número de fragmentos
O Memorystore for Redis Cluster implementa uma técnica de indexação local para todos os vetores. Isso significa que o índice armazenado em cada fragmento contém apenas os documentos desse fragmento. Por isso, a velocidade de indexação e o número total de vetores serão dimensionados de forma linear com o número de fragmentos no cluster.
Como cada índice local contém apenas o conteúdo de um único fragmento, a pesquisa no cluster exige a pesquisa em cada fragmento e a agregação dos resultados. Com uma quantidade estável de vetores, aumentar o número de fragmentos melhora o desempenho da pesquisa de forma logarítmica para índices HNSW e linear para índices FLAT, já que há menos vetores em cada índice local.
Devido ao aumento da quantidade de trabalho necessário para pesquisar todos os fragmentos, a latência observável para concluir uma determinada solicitação de pesquisa pode aumentar à medida que mais fragmentos são adicionados. Apesar disso, até mesmo os maiores clusters oferecem suporte a latências de milissegundos com um dígito.
Número de réplicas
Adicionar mais réplicas aumenta o throughput de pesquisa de forma linear, permitindo o balanceamento de carga das solicitações de pesquisa para réplicas de leitura.
Eventos de escalonamento
Ao redimensionar o cluster do Redis, os documentos nos seus índices serão movidos para distribuir os dados de maneira uniforme entre a nova contagem de fragmentos. Quando isso acontece, os documentos movidos entre nós são indexados em segundo plano. Depois que a operação de escalonamento for concluída, monitore o valor de mutation_queue_size
na saída FT.INFO para acompanhar o progresso da reindexação devido ao redimensionamento do cluster.
Consumo de memória
Os vetores são duplicados, sendo armazenados no espaço de chaves do Redis e no algoritmo de pesquisa vetorial.
Transações
Devido à natureza assíncrona da execução de tarefas por pools de linhas de execução, as operações de pesquisa vetorial não seguem a semântica transacional.