Auf dieser Seite finden Sie Details zu den Funktionen und Einschränkungen der Vektorsuche.
Verfügbarkeit
Die Vektorsuche ist in allen Memorystore for Valkey-Versionen in allen Stufen und allen unterstützten Regionen verfügbar.
Die Vektorsuche ist nur für Instanzen aktiviert, die nach dem Einführungsdatum am 13. September 2024 erstellt wurden.
Indexeinschränkungen
Im Folgenden werden die Einschränkungen des Index beschrieben:
- Die maximale Anzahl von Attributen in einem Index darf 10 nicht überschreiten.
- Die Dimension eines Vektors darf 32.768 nicht überschreiten.
- Der M-Wert für HNSW darf 2 Mio. nicht überschreiten.
- Der Wert für das EF-Konstrukt für HNSW darf 4.096 nicht überschreiten.
- Der Wert für die EF-Laufzeit für HNSW darf ebenfalls nicht 4.096 überschreiten.
Auswirkungen auf die Leistung
Bei der Leistung der Vektorsuche sind einige wichtige Variablen zu berücksichtigen.
Knotentyp
Die Vektorsuche ermöglicht eine vertikale Skalierung durch die Integration von Threadpools, die speziell für die Ausführung von Vektorsuchvorgängen vorgesehen sind. Die Leistung hängt also von der Anzahl der vCPUs auf jedem Knoten in Ihrem Cluster ab. Weitere Informationen zur Anzahl der für jeden Knotentyp verfügbaren vCPUs finden Sie unter Cluster- und Knotenspezifikation.
Anzahl der Shards
Memorystore for Valkey implementiert eine lokale Indexierungstechnik für alle Vektoren. Das bedeutet, dass der auf jedem Shard gespeicherte Index nur die Dokumente enthält, die sich auf diesem Shard befinden. Daher skalieren die Indexierungsgeschwindigkeit und die Anzahl der Gesamtvektoren linear mit der Anzahl der Shards im Cluster.
Da jeder lokale Index nur den Inhalt eines einzelnen Shards enthält, muss bei der Suche im Cluster jeder Shard im Cluster durchsucht und die Ergebnisse aggregiert werden. Bei einer stabilen Anzahl von Vektoren verbessert sich die Suchleistung durch eine Erhöhung der Anzahl der Shards logarithmisch für HNSW-Indexe und linear für FLAT-Indexe, da in jedem lokalen Index weniger Vektoren enthalten sind.
Hinweis: Aufgrund der erhöhten Arbeitslast, die für die Suche in allen Shards erforderlich ist, kann die sichtbare Latenz für die Ausführung einer bestimmten Suchanfrage steigen, wenn mehr Shards hinzugefügt werden. Trotzdem unterstützen selbst die größten Cluster Latenzen im einstelligen Millisekundenbereich.
Anzahl der Replikate
Durch das Hinzufügen zusätzlicher Replikate wird der Suchdurchsatz linear erhöht, da das Load Balancing von Suchanfragen auf Lesereplikate möglich ist.
Skalierungsereignisse
Wenn Sie die Größe Ihrer Memorystore for Redis-Instanz ändern, werden die Dokumente in Ihren Indexen verschoben, um die Daten gleichmäßig auf die neue Shard-Anzahl zu verteilen. In diesem Fall werden Dokumente, die zwischen Knoten verschoben werden, im Hintergrund indexiert. Nach Abschluss der Skalierung können Sie den Wert von mutation_queue_size
in der FT.INFO-Ausgabe beobachten, um den Fortschritt der Neuindexierung aufgrund der Größenänderung des Clusters zu sehen.
Arbeitsspeicherverbrauch
Vektoren werden dupliziert und sowohl im Schlüsselbereich als auch im Vektorsuchalgorithmus gespeichert.
Transaktionen
Aufgrund der asynchronen Ausführung von Aufgaben durch Threadpools entsprechen Vektorsuchvorgänge nicht der Transaktionssemantik.