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 Valkey in tutti i livelli e in tutte le regioni supportate.

Solo le istanze create dopo il 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 2 milioni.
  • 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 dell'istanza. Per informazioni dettagliate sul numero di vCPU disponibili su ogni tipo di nodo, consulta Caratteristiche dei nodi.

Numero di shard

Memorystore for Valkey 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 con il numero di shard nell'istanza.

Poiché ogni indice locale contiene solo i contenuti di un singolo shard, la ricerca nell'istanza richiede la ricerca in ogni shard dell'istanza e l'aggregazione dei risultati. Con una quantità stabile di vettori, l'aumento del numero di shard migliorerà le prestazioni di 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 le istanze più grandi supportano latenze in millisecondi a singola 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 dell'istanza Memorystore for Valkey, i documenti all'interno degli indici verranno spostati per distribuire uniformemente i dati nel nuovo numero di 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 FT.INFO per visualizzare l'avanzamento della reindicizzazione dovuta al ridimensionamento dell'istanza.

Consumo di memoria

I vettori vengono duplicati e archiviati sia all'interno dello spazio delle chiavi sia nell'algoritmo di ricerca dei vettori.

Transazioni

A causa della natura asincrona dell'esecuzione delle attività da parte dei pool di thread, le operazioni di ricerca di vettori non rispettano la semantica transazionale.