Woodpecker
In Milvus 2.6 ersetzt Woodpecker Kafka und Pulsar durch ein speziell entwickeltes, Cloud-natives Write-Ahead-Log-System (WAL). Woodpecker wurde für die Objektspeicherung entwickelt, vereinfacht die Abläufe, maximiert den Durchsatz und lässt sich mühelos skalieren.
Die Entwicklungsziele von Woodpecker:
Höchster Durchsatz in Cloud-Umgebungen
Dauerhafte, nur anhängende Protokollierung für zuverlässige Wiederherstellung
Minimaler betrieblicher Overhead ohne lokale Festplatten oder externe Makler
Null-Festplatten-Architektur
Die zentrale Innovation von Woodpecker ist seine Zero-Disk-Architektur:
- Alle Protokolldaten werden in einem Cloud-Objektspeicher (wie Amazon S3, Google Cloud Storage oder Alibaba OS) gespeichert.
- Metadaten werden über verteilte Key-Value-Stores wie etcd verwaltet
- Keine Abhängigkeiten von lokalen Festplatten für Kernoperationen
Woodpecker-Schichten
Komponenten der Architektur
Ein Standard-Woodpecker-Einsatz umfasst die folgenden Komponenten:
- Client: Schnittstellenschicht für die Ausgabe von Lese- und Schreibanfragen
- LogStore: Verwaltet Hochgeschwindigkeits-Schreibpufferung, asynchrone Uploads in den Speicher und Protokollverdichtung
- Speicher-Backend: Unterstützt skalierbare, kostengünstige Speicherdienste wie S3, GCS und Dateisysteme wie EFS
- Etcd: Speichert Metadaten und koordiniert den Protokollstatus über verteilte Knoten hinweg
Bereitstellungsmodi
Woodpecker bietet zwei Bereitstellungsmodi, um Ihren spezifischen Anforderungen gerecht zu werden:
MemoryBuffer - Leichtgewichtig und wartungsfrei
Der MemoryBuffer-Modus bietet eine einfache und leichtgewichtige Bereitstellungsoption, bei der der eingebettete Woodpecker-Client eingehende Schreibvorgänge vorübergehend im Speicher puffert und sie regelmäßig an einen Cloud-Objektspeicherdienst weiterleitet. In diesem Modus ist der Speicherpuffer direkt in den Client eingebettet, was ein effizientes Batching vor dem Flushing an S3 ermöglicht. Die Metadaten werden mit etcd verwaltet, um Konsistenz und Koordination zu gewährleisten. Dieser Modus eignet sich am besten für stapelintensive Arbeitslasten in kleineren Bereitstellungen oder Produktionsumgebungen, bei denen die Einfachheit Vorrang vor der Leistung hat, insbesondere wenn eine geringe Schreiblatenz nicht entscheidend ist. Die Schreiblatenz in diesem Modus liegt im Allgemeinen zwischen 200 und 500 ms.
Einsatz des Speckerspeichermodus
QuorumBuffer - Optimiert für niedrige Latenzzeiten und hohe Langlebigkeit
Der QuorumBuffer-Modus wurde für latenzempfindliche, hochfrequente Lese-/Schreib-Workloads entwickelt, die sowohl Echtzeit-Reaktionsfähigkeit als auch hohe Fehlertoleranz erfordern. In diesem Modus interagiert der Woodpecker-Client mit einem Quorum-System mit drei Replikaten, um eine Hochgeschwindigkeits-Schreibpufferung zu gewährleisten, die durch verteilten Konsens eine starke Konsistenz und hohe Verfügbarkeit sicherstellt.
Ein Schreibvorgang gilt als erfolgreich, wenn der Client die Daten erfolgreich an mindestens zwei der drei Quorum-Knoten repliziert, was in der Regel innerhalb eines einstelligen Millisekundenbereichs geschieht. Diese Architektur minimiert den Knotenstatus, macht große lokale Festplattenvolumina überflüssig und vermeidet komplexe Anti-Entropie-Reparaturen, die in herkömmlichen Quorum-basierten Systemen häufig erforderlich sind.
Das Ergebnis ist eine schlanke, robuste WAL-Schicht, die sich ideal für geschäftskritische Produktionsumgebungen eignet, in denen Konsistenz, Verfügbarkeit und schnelle Wiederherstellung wichtig sind.
Einsatz des Woodpecker Quorum-Modus
Leistungs-Benchmarks
Wir haben umfassende Benchmarks durchgeführt, um die Leistung von Woodpecker in einem Single-Node, Single-Client, Single-Log-Stream Setup zu bewerten. Die Ergebnisse waren im Vergleich zu Kafka und Pulsar beeindruckend:
| System | Kafka | Pulsar | WP Minio | WP Lokal | WP S3 |
|---|---|---|---|---|---|
| Durchsatz | 129.96MB/s | 107MB/s | 71MB/s | 450MB/s | 750MB/s |
| Latenzzeit | 58ms | 35 ms | 184ms | 1,8 ms | 166ms |
Zur Veranschaulichung haben wir die theoretischen Durchsatzgrenzen der verschiedenen Speicher-Backends auf unserem Testrechner gemessen:
- MinIO: ~110 MB/s
- Lokales Dateisystem: 600-750 MB/s
- Amazon S3 (einzelne EC2-Instanz): bis zu 1,1 GB/s
Bemerkenswerterweise erreichte Woodpecker durchgängig 60-80% des maximal möglichen Durchsatzes für jedes Backend - ein außergewöhnliches Effizienzniveau für Middleware.
Wichtige Leistungsdaten
- Lokaler Dateisystem-Modus: Woodpecker erreichte 450 MB/s - 3,5 Mal schneller als Kafka und 4,2 Mal schneller als Pulsar - bei einer extrem niedrigen Latenz von nur 1,8 ms, was ihn ideal für hochleistungsfähige Single-Node-Implementierungen macht.
- Cloud-Speicher-Modus (S3): Beim direkten Schreiben auf S3 erreichte Woodpecker 750 MB/s (ca. 68 % der theoretischen Grenze von S3), 5,8× schneller als Kafka und 7× schneller als Pulsar. Obwohl die Latenzzeit höher ist (166 ms), bietet dieses Setup einen außergewöhnlichen Durchsatz für stapelorientierte Arbeitslasten.
- Objektspeicher-Modus (MinIO): Selbst mit MinIO erreichte Woodpecker 71 MB/s - etwa 65 % der Kapazität von MinIO. Diese Leistung ist mit der von Kafka und Pulsar vergleichbar, allerdings bei deutlich geringerem Ressourcenbedarf.
Woodpecker ist besonders für gleichzeitige Schreibvorgänge mit hohem Volumen optimiert, bei denen die Aufrechterhaltung der Reihenfolge entscheidend ist. Und diese Ergebnisse spiegeln nur die frühen Stadien der Entwicklung wider - laufende Optimierungen bei der E/A-Zusammenführung, der intelligenten Pufferung und dem Prefetching werden die Leistung voraussichtlich noch näher an die theoretischen Grenzen bringen.
Betriebliche Vorteile
Die Cloud-native Architektur von Woodpecker bietet erhebliche betriebliche Vorteile:
- Keine lokale Speicherverwaltung: Keine Festplattenverwaltung, keine RAID-Konfiguration, keine Hardware-Ausfälle
- Automatische Skalierung: Speicher skaliert mit Cloud Object Storage ohne Kapazitätsplanung
- Kosteneffizienz: Pay-as-you-go-Speicher mit automatischem Tiering und Komprimierung
- Hohe Verfügbarkeit: Nutzt die 11-nines-Dauerhaftigkeit der Cloud-Anbieter mit schneller Wiederherstellung
- Vereinfachte Bereitstellung: Zwei Bereitstellungsmodi (MemoryBuffer/QuorumBuffer) für unterschiedliche betriebliche Anforderungen
- Entwicklerfreundlich: Schnellere Einrichtung der Umgebung und konsistente Architektur in allen Umgebungen
Diese Vorteile machen Woodpecker besonders wertvoll für unternehmenskritische RAG-, KI-Agenten- und Such-Workloads mit niedriger Latenz, bei denen die Einfachheit des Betriebs ebenso wichtig ist wie die Leistung.