Esta página fornece detalhes sobre os recursos e 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 os clusters criados após 13 de setembro de 2024 têm a pesquisa vetorial ativada.
Restrições de índice
A seguir, descrevemos 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 M para HNSW não pode exceder 2 milhões.
- O valor de construção de EF para HNSW não pode exceder 4.096.
- O valor de execução de EF para HNSW também não pode exceder 4.096.
Impactos na performance
Ao considerar a performance da pesquisa vetorial, há algumas variáveis importantes a serem consideradas.
Tipo de nó
A pesquisa vetorial facilita o escalonamento vertical pela integração de pools de linhas de execução dedicados à execução de operações de pesquisa vetorial. Isso significa que a performance será vinculada ao número de vCPUs em cada nó do cluster. Para mais detalhes sobre o número de vCPUs disponíveis em cada tipo de nó, consulte Características do 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 contidos nesse fragmento. Por isso, a velocidade de indexação e o número total de vetores serão escalonados linearmente 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 de cada fragmento no cluster e a agregação dos resultados. Com uma quantidade estável de vetores, aumentar o número de fragmentos vai melhorar a performance da pesquisa logaritmicamente para índices HNSW e linearmente para índices FLAT devido ao menor número de vetores contidos 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 de um único dígito.
Número de réplicas
A adição de réplicas extras vai aumentar a capacidade de processamento da pesquisa linearmente, permitindo o balanceamento de carga de solicitações de pesquisa para réplicas de leitura.
Eventos de escalonamento
Ao redimensionar o cluster do Redis, os documentos nos índices serão movidos para distribuir os dados de maneira uniforme na 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, você poderá monitorar o valor de
mutation_queue_size na saída FT.INFO
para conferir o progresso da reindexação devido ao redimensionamento do cluster.
Consumo de memória
Os vetores são duplicados e 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 aderem à semântica transacional.