Funktionen und Einschränkungen

Auf dieser Seite finden Sie Details zu den Funktionen und Einschränkungen der Vektorsuche.

Verfügbarkeit

Die Vektorsuche ist für alle Memorystore for Valkey-Versionen in allen Dienststufen und allen unterstützten Regionen verfügbar.

Die Vektorsuche ist nur für Instanzen aktiviert, die Sie nach dem 13. September 2024 erstellen.

Indexbeschränkungen

Im Folgenden sind die Einschränkungen des Index aufgeführt:

  • 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.000.000 nicht überschreiten.
  • Der Wert für „EF Construct“ für HNSW darf 4096 nicht überschreiten.
  • Der Wert für „EF Runtime“ für HNSW darf ebenfalls 4096 nicht überschreiten.

Auswirkungen auf die Leistung

Bei der Bewertung der Leistung der Vektorsuche sind einige wichtige Variablen zu berücksichtigen.

Knotentyp

Die Vektorsuche ermöglicht die vertikale Skalierung durch die Einbindung von Thread-Pools, die für die Ausführung von Vektorsuchvorgängen vorgesehen sind. Das bedeutet, dass die Leistung von der Anzahl der vCPUs auf jedem Knoten in Ihrer Instanz abhängt. Details zur Anzahl der vCPUs, die für jeden Knotentyp verfügbar sind, finden Sie unter Knoteneigenschaften.

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 skaliert die Geschwindigkeit der Indexierung und die Anzahl der Vektoren linear mit der Anzahl der Shards in der Instanz.

Da jeder lokale Index nur die Inhalte eines einzelnen Shards enthält, muss bei der Suche in der Instanz jeder Shard in der Instanz durchsucht und die Ergebnisse zusammengeführt werden. Bei einer stabilen Anzahl von Vektoren verbessert sich die Suchleistung durch Erhöhen der Anzahl der Shards logarithmisch für HNSW-Indizes und linear für FLAT-Indizes, da jeder lokale Index weniger Vektoren enthält.

Aufgrund der erhöhten Arbeitslast, die für die Suche in allen Shards erforderlich ist, kann die beobachtbare Latenzzeit für den Abschluss einer bestimmten Suchanfrage mit zunehmender Anzahl von Shards steigen. Trotzdem unterstützen selbst die größten Instanzen Latenzen im einstelligen Millisekundenbereich.

Anzahl der Replikate

Durch das Hinzufügen zusätzlicher Replikate wird der Suchdurchsatz linear erhöht, da Suchanfragen auf Lesereplikate verteilt werden können.

Skalierungsereignisse

Wenn Sie die Größe Ihrer Memorystore for Valkey-Instanz ändern, werden die Dokumente in Ihren Indizes verschoben, um die Daten gleichmäßig auf die neue Anzahl von Shards zu verteilen. In diesem Fall werden Dokumente, die zwischen Knoten verschoben werden, im Hintergrund indexiert. Nach Abschluss des Skalierungsvorgangs 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 Ihrer Instanz zu sehen.

Arbeitsspeichernutzung

Vektoren werden dupliziert und sowohl im Keyspace als auch im Vektorsuchalgorithmus gespeichert.

Transaktionen

Aufgrund der asynchronen Ausführung von Aufgaben durch Thread-Pools halten sich Vektorsuchvorgänge nicht an die transaktionale Semantik.