PgDog: Open-Source-Sharding für pgvector

2025-03-26
PgDog: Open-Source-Sharding für pgvector

Die Skalierung von pgvector über eine Million Einbettungen hinaus wird aufgrund der langsamen Indexerstellung schwierig. Dieser Beitrag stellt PgDog vor, ein Open-Source-Projekt, das den pgvector-Index sharded. Durch die Nutzung der inhärenten Clustering-Funktionen von IVFFlat verteilt PgDog Vektorraumpartitionen auf mehrere Maschinen. Abfragevektoren werden basierend auf der Nähe zu den mit scikit-learn berechneten Zentroiden an die entsprechenden Shards weitergeleitet, wodurch die Suchgeschwindigkeit und der Rückruf erheblich verbessert werden. Die Implementierungsdetails umfassen die Berechnung von Zentroiden, eine benutzerdefinierte Sharding-Funktion und die SQL-Analyse mithilfe von pg_query. Experimente zeigen die Effektivität von PgDog und bieten Optimierungen wie parallele Shard-übergreifende Abfragen und eine verfeinerte Zentroidzuweisung. Zukünftige Arbeiten umfassen die Unterstützung weiterer Distanzalgorithmen und SIMD-Anweisungen für schnellere Berechnungen.

Entwicklung Sharding