Questa pagina fornisce dettagli sulle funzionalità e sulle limitazioni della ricerca di vettori.
Disponibilità
La ricerca di vettori è disponibile in tutte le versioni di Memorystore for Valkey 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 di vettori abilitata.
Restrizioni relative agli indici
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 i 2 milioni.
- Il valore EF Construct per HNSW non deve superare 4096.
- Anche il valore dell'orario di attivazione EF per HNSW non deve superare 4096.
Impatto sul rendimento
Quando si valuta il rendimento della ricerca di vettori, è necessario prendere in considerazione alcune variabili importanti.
Tipo di nodo
La ricerca vettoriale facilita la scalabilità verticale tramite l'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 ciascun nodo del cluster. Per informazioni dettagliate sul numero di vCPU disponibili su ogni tipo di nodo, consulta la specifica del cluster e dei nodi.
Numero di shard
Memorystore for Valkey implementa una tecnica di indicizzazione locale per tutti i vettori. Ciò significa che l'indice archiviato su ogni shard contiene solo i documenti contenuti in quel determinato shard. Di conseguenza, la velocità dell'indicizzazione e il numero di vettori totali 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é in ogni indice locale saranno contenuti meno vettori.
Tieni presente che, a causa dell'aumento del lavoro necessario per eseguire ricerche in tutti i frammenti, la latenza osservabile per completare una determinata richiesta di ricerca potrebbe aumentare con l'aggiunta di altri frammenti. Nonostante ciò, anche i cluster più grandi supportano latenze di un solo millisecondo.
Numero di repliche
L'aggiunta di repliche aggiuntive aumenterà in modo lineare il throughput della ricerca consentendo il bilanciamento del carico delle richieste di ricerca sulle repliche di lettura.
Eventi di scalabilità
Dopo aver ridimensionato l'istanza Memorystore for Redis, i documenti all'interno degli indici verranno spostati per distribuire uniformemente i dati tra il nuovo numero di shard. In questo caso, i documenti spostati tra i nodi verranno indicizzati in background. Al termine dell'operazione di ridimensionamento, puoi monitorare il valore di mutation_queue_size
nell'output di FT.INFO per vedere l'avanzamento dell'indicizzazione di nuovo a causa del ridimensionamento del cluster.
Consumo di memoria
I vettori vengono duplicati e archiviati sia nello spazio chiavi sia nell'algoritmo di ricerca vettoriale.
Transazioni
A causa della natura asincrona dell'esecuzione delle attività tramite pool di thread, le operazioni di ricerca di vettori non rispettano la semantica delle transazioni.