Was ist neu in Milvus 2.1 - Mehr Einfachheit und Geschwindigkeit
Was ist neu in Milvus 2.1 - In Richtung Einfachheit und Geschwindigkeit
Wir freuen uns sehr, dieVeröffentlichung von Milvus 2.1 nach sechs Monaten harter Arbeit aller Mitarbeiter der Milvus-Community bekannt geben zu können. Diese große Iteration der beliebten Vektordatenbank legt den Schwerpunkt auf Leistung und Benutzerfreundlichkeit, zwei der wichtigsten Schlüsselwörter unseres Fokus. Wir haben Unterstützung für Strings, Kafka Message Queue und eingebettetes Milvus hinzugefügt, sowie eine Reihe von Verbesserungen in Bezug auf Leistung, Skalierbarkeit, Sicherheit und Beobachtbarkeit. Milvus 2.1 ist ein aufregendes Update, das die "letzte Meile" vom Laptop des Algorithmus-Ingenieurs zu den produktiven Vektorähnlichkeitssuchdiensten überbrückt.
Latenzzeit auf 5ms-Niveau
Milvus unterstützt bereits die ANN-Suche (Approximate Nearest Neighbour), was einen erheblichen Sprung gegenüber der traditionellen KNN-Methode darstellt. Allerdings stellen Durchsatz- und Latenzprobleme nach wie vor eine Herausforderung für Benutzer dar, die Vektordaten in Milliardenhöhe abrufen müssen.
In Milvus 2.1 gibt es ein neues Routing-Protokoll, das sich nicht mehr auf Nachrichtenwarteschlangen in der Abrufverbindung stützt, wodurch die Abruflatenz für kleine Datensätze erheblich reduziert wird. Unsere Testergebnisse zeigen, dass Milvus seine Latenzzeit jetzt auf 5 ms senkt, was den Anforderungen kritischer Online-Verbindungen wie Ähnlichkeitssuche und Empfehlung entspricht.
Gleichzeitigkeitskontrolle
Milvus 2.1 verfeinert sein Gleichzeitigkeitsmodell durch die Einführung eines neuen Kostenbewertungsmodells und eines Gleichzeitigkeitsplaners. Es bietet nun eine Gleichzeitigkeitskontrolle, die sicherstellt, dass weder eine große Anzahl gleichzeitiger Anfragen um CPU- und Cache-Ressourcen konkurriert, noch die CPU zu wenig ausgelastet wird, weil es nicht genügend Anfragen gibt. Die neue, intelligente Scheduler-Schicht in Milvus 2.1 führt auch Small-nq-Abfragen mit konsistenten Abfrageparametern zusammen und sorgt so für eine erstaunliche 3,2-fache Leistungssteigerung in Szenarien mit Small-nq und hoher Gleichzeitigkeit der Abfragen.
In-Memory-Replikate
Milvus 2.1 bietet In-Memory-Replikate, die die Skalierbarkeit und Verfügbarkeit für kleine Datensätze verbessern. Ähnlich wie die Nur-Lese-Replikate in herkömmlichen Datenbanken können die In-Memory-Replikate horizontal skaliert werden, indem Maschinen hinzugefügt werden, wenn die Lese-QPS hoch ist. Beim Vektor-Retrieval für kleine Datenmengen muss ein Empfehlungssystem oft eine QPS bieten, die die Leistungsgrenze eines einzelnen Rechners überschreitet. In diesen Szenarien kann der Durchsatz des Systems durch das Laden mehrerer Replikate in den Speicher erheblich verbessert werden. In Zukunft werden wir auch einen abgesicherten Lesemechanismus einführen, der auf speicherinternen Replikaten basiert und der schnell andere funktionale Kopien anfordert, falls das System sich von Ausfällen erholen muss, und der die Speicherredundanz vollständig nutzt, um die Gesamtverfügbarkeit des Systems zu verbessern.
In-Memory-Replikate ermöglichen Abfragedienste, die auf separaten Kopien derselben Daten basieren.
Schnelleres Laden von Daten
Die letzte Leistungssteigerung betrifft das Laden von Daten. Milvus 2.1 komprimiert nun Binärprotokolle mit Zstandard (zstd), was die Datengröße in den Objekt- und Nachrichtenspeichern sowie den Netzwerk-Overhead während des Datenladens erheblich reduziert. Darüber hinaus wurden Goroutine-Pools eingeführt, so dass Milvus Segmente gleichzeitig laden kann, wobei der Speicherbedarf kontrolliert wird und die Zeit für die Wiederherstellung nach Fehlern und das Laden von Daten minimiert wird.
Die vollständigen Benchmark-Ergebnisse von Milvus 2.1 werden demnächst auf unserer Website veröffentlicht. Bleiben Sie dran.
Unterstützung von String- und Skalar-Indizes
Mit der Version 2.1 unterstützt Milvus nun Strings mit variabler Länge (VARCHAR) als skalaren Datentyp. VARCHAR kann als Primärschlüssel verwendet werden, der als Ausgabe zurückgegeben werden kann, und kann auch als Attributfilter dienen. Das Filtern von Attributen ist eine der beliebtesten Funktionen, die Milvus-Benutzer benötigen. Wenn Sie oft nach "Produkten suchen, die einem Benutzer in einer Preisspanne am ähnlichsten sind", oder "Artikel finden, die das Schlüsselwort 'Vektordatenbank' enthalten und mit cloud-nativen Themen in Verbindung stehen", werden Sie Milvus 2.1 lieben.
Milvus 2.1 unterstützt auch den skalaren invertierten Index, um die Filtergeschwindigkeit auf der Grundlage derprägnantenMARISA-Tries als Datenstruktur zu verbessern. Alle Daten können nun mit einem sehr geringen Platzbedarf in den Speicher geladen werden, was einen viel schnelleren Vergleich, eine schnellere Filterung und ein schnelleres Präfix-Matching bei Zeichenketten ermöglicht. Unsere Testergebnisse zeigen, dass der Speicherbedarf von MARISA-trie nur 10% des Speicherbedarfs von Python-Wörterbüchern beträgt, um alle Daten in den Speicher zu laden und Abfragefunktionen bereitzustellen.
Milvus 2.1 kombiniert MARISA-Trie mit einem invertierten Index, um die Filtergeschwindigkeit erheblich zu verbessern.
In Zukunft wird sich Milvus weiterhin auf Entwicklungen im Zusammenhang mit skalaren Abfragen konzentrieren, mehr skalare Indextypen und Abfrageoperatoren unterstützen und plattenbasierte skalare Abfragefunktionen bereitstellen, alles als Teil der laufenden Bemühungen, die Speicher- und Nutzungskosten skalarer Daten zu reduzieren.
Kafka-Unterstützung
Milvus 2.1 bietet Ihnen nun die Möglichkeit,Pulsar oder Kafka als Nachrichtenspeicher zu verwenden, je nach Konfiguration des Benutzers, dank der Abstraktion und Kapselung von Milvus und dem Go Kafka SDK von Confluent.
Produktionsfähiges Java-SDK
Mit Milvus 2.1 ist unser Java SDK nun offiziell freigegeben. Das Java-SDK verfügt über genau dieselben Funktionen wie das Python-SDK, mit einer noch besseren Gleichzeitigkeitsleistung. Im nächsten Schritt werden unsere Community-Mitarbeiter schrittweise die Dokumentation und die Anwendungsfälle für das Java-SDK verbessern und dazu beitragen, dass auch die Go- und RESTful-SDKs in die Produktionsreife gebracht werden.
Beobachtbarkeit und Wartbarkeit
Milvus 2.1 fügt wichtigeÜberwachungsmetriken hinzu, wie z. B. die Anzahl der Vektoreinfügungen, Suchlatenz/Durchsatz, Knotenspeicher-Overhead und CPU-Overhead. Außerdem optimiert die neue Version die Protokollierung erheblich, indem sie die Protokollebenen anpasst und unnötige Protokolldrucke reduziert.
Eingebettetes Milvus
Milvus hat die Bereitstellung von groß angelegten massiven Vektordatensuchdiensten erheblich vereinfacht, aber für Wissenschaftler, die Algorithmen in kleinerem Maßstab validieren wollen, ist Docker oder K8s immer noch zu kompliziert. Mit der Einführung von Embedded Milvus können Sie Milvus jetzt mit pip installieren, genau wie Pyrocksb und Pysqlite. Embedded Milvus unterstützt alle Funktionalitäten der Cluster- und der Standalone-Version, so dass Sie problemlos von Ihrem Laptop zu einer verteilten Produktionsumgebung wechseln können, ohne eine einzige Zeile Code zu ändern. Algorithmus-Ingenieure werden bei der Erstellung eines Prototyps mit Milvus eine viel bessere Erfahrung machen.
Darüber hinaus bietet Milvus 2.1 auch einige große Verbesserungen in Bezug auf Stabilität und Skalierbarkeit, und wir freuen uns auf Ihre Nutzung und Ihr Feedback.
Was kommt als nächstes?
- Lesen Sie die detaillierten Release Notes für alle Änderungen in Milvus 2.1
- InstallierenSie Milvus 2.1 und probieren Sie die neuen Funktionen aus
- Treten Sie unserer Slack-Community bei und diskutieren Sie die neuen Funktionen mit Tausenden von Milvus-Nutzern auf der ganzen Welt
- Folgen Sie uns auf Twitter undLinkedIn, um Updates zu erhalten, sobald unsere Blogs zu bestimmten neuen Funktionen veröffentlicht werden
Bearbeitet von Songxian Jiang
- Latenzzeit auf 5ms-Niveau
- Gleichzeitigkeitskontrolle
- In-Memory-Replikate
- Schnelleres Laden von Daten
- Unterstützung von String- und Skalar-Indizes
- Kafka-Unterstützung
- Produktionsfähiges Java-SDK
- Beobachtbarkeit und Wartbarkeit
- Eingebettetes Milvus
- Was kommt als nächstes?
On This Page
Try Managed Milvus for Free
Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.
Get StartedLike the article? Spread the word