Questa pagina fornisce dettagli sulle funzionalità e sulle limitazioni della ricerca vettoriale.
Disponibilità
La ricerca vettoriale è disponibile in tutte le versioni di Memorystore for Redis Cluster, in tutti i livelli e in tutte le regioni supportate.
Solo i cluster creati dopo il 13 settembre 2024 hanno la ricerca vettoriale abilitata.
Vincoli di indice
Di seguito sono riportate le limitazioni dell'indice:
- Il numero massimo di attributi in un indice non può superare 10.
- La dimensione di un vettore non può superare 32.768.
- Il valore M per HNSW non deve superare 2 milioni.
- Il valore EF Construct per HNSW non deve superare 4096.
- Anche il valore EF Runtime per HNSW non deve superare 4096.
Impatto sulle prestazioni
Quando si considera il rendimento della ricerca vettoriale, è necessario tenere conto di alcune variabili importanti.
Tipo di nodo
La ricerca vettoriale facilita lo scaling verticale tramite l'integrazione di pool di thread dedicati all'esecuzione delle operazioni di ricerca vettoriale. Ciò significa che il rendimento sarà legato al numero di vCPU su ogni nodo del cluster. Per informazioni dettagliate sul numero di vCPU disponibili su ogni tipo di nodo, consulta Caratteristiche dei nodi.
Numero di shard
Memorystore for Redis Cluster implementa una tecnica di indicizzazione locale per tutti i vettori. Ciò significa che l'indice memorizzato su ogni shard contiene solo i documenti contenuti in quello shard. Per questo motivo, la velocità di indicizzazione e il numero totale di vettori aumenteranno in modo lineare con il numero di shard nel cluster.
Poiché ogni indice locale contiene solo i contenuti di un singolo shard, la ricerca nel cluster richiede la ricerca in ogni shard del cluster e l'aggregazione dei risultati. Con una quantità stabile di vettori, l'aumento del numero di shard migliorerà il rendimento della ricerca in modo logaritmico per gli indici HNSW e in modo lineare per gli indici FLAT, poiché ogni indice locale contiene meno vettori.
Tieni presente che, a causa della maggiore quantità di lavoro necessaria per cercare in tutti gli shard, la latenza osservabile per completare una determinata richiesta di ricerca potrebbe aumentare man mano che vengono aggiunti altri shard. Nonostante ciò, anche i cluster più grandi supportano latenze di millisecondi a una cifra.
Numero di repliche
L'aggiunta di repliche aggiuntive aumenterà linearmente la velocità effettiva di ricerca, consentendo il bilanciamento del carico delle richieste di ricerca sulle repliche di lettura.
Eventi di scalabilità
Quando ridimensioni il cluster Redis, i documenti all'interno degli indici vengono spostati per distribuire uniformemente i dati nel nuovo conteggio degli shard. In questo caso, i documenti spostati tra i nodi vengono indicizzati in background. Al termine dell'operazione di scalabilità, puoi monitorare il valore di
mutation_queue_size nell'output di FT.INFO
per visualizzare l'avanzamento della reindicizzazione dovuta al ridimensionamento del cluster.
Consumo di memoria
I vettori vengono duplicati e memorizzati sia nello spazio delle chiavi Redis sia nell'algoritmo di ricerca vettoriale.
Transazioni
A causa della natura asincrona dell'esecuzione delle attività da parte dei pool di thread, le operazioni di ricerca vettoriale non rispettano la semantica transazionale.