Funzionalità e limitazioni

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 le istanze create dopo la data di lancio del 13 settembre 2024 hanno la ricerca vettoriale abilitata.

Limitazioni dell'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 2M.
  • Il valore EF Construct per HNSW non deve superare 4096.
  • Anche il valore di EF Runtime per HNSW non deve superare 4096.

Impatto sul rendimento

Quando si valuta il rendimento della ricerca vettoriale, è importante considerare alcune variabili.

Tipo di nodo

La ricerca vettoriale facilita lo scaling verticale grazie all'integrazione di pool di thread dedicati all'esecuzione di operazioni di ricerca vettoriale. Ciò significa che le prestazioni saranno legate al numero di vCPU su ogni nodo del cluster. Per informazioni dettagliate sul numero di vCPU disponibili su ciascun tipo di nodo, consulta Specifiche di cluster e nodi.

Numero di shard

Memorystore for Redis Cluster implementa una tecnica di indicizzazione locale per tutti i vettori. Ciò significa che l'indice memorizzato in 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 in base al 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 dell'aumento del lavoro necessario 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 sola 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à

Dopo il ridimensionamento del cluster Redis, i documenti all'interno degli indici verranno spostati per distribuire uniformemente i dati nel nuovo conteggio degli shard. In questo caso, i documenti spostati tra i nodi verranno 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.