Woodpecker

In Milvus 2.6, Woodpecker sostituisce Kafka e Pulsar con un sistema di log write-ahead (WAL) appositamente costruito per il cloud. Progettato per l'archiviazione di oggetti, Woodpecker semplifica le operazioni, massimizza il throughput e scala senza sforzo.

Obiettivi di progettazione di Woodpecker:

  • Massimo throughput in ambienti cloud

  • Registrazione durevole e di sola appendice per un ripristino affidabile

  • Minimo overhead operativo senza dischi locali o broker esterni

Architettura a zero dischi

L'innovazione principale di Woodpecker è la sua architettura a zero dischi:

  • Tutti i dati di log sono memorizzati in uno storage a oggetti nel cloud (come Amazon S3, Google Cloud Storage o Alibaba OS).
  • I metadati sono gestiti attraverso archivi distribuiti di valori-chiave come etcd.
  • Nessuna dipendenza dal disco locale per le operazioni principali

woodpecker layers strati di woodpecker

Componenti dell'architettura

Una distribuzione standard di Woodpecker comprende i seguenti componenti:

  • Client: Livello di interfaccia per l'emissione di richieste di lettura e scrittura
  • LogStore: Gestisce il buffering delle scritture ad alta velocità, il caricamento asincrono sullo storage e la compattazione dei registri
  • Backend di archiviazione: Supporta servizi di archiviazione scalabili e a basso costo come S3, GCS e file system come EFS
  • Etcd: Memorizza i metadati e coordina lo stato dei log tra i nodi distribuiti.

Modalità di distribuzione

Woodpecker offre due modalità di distribuzione per soddisfare le vostre esigenze specifiche:

MemoryBuffer - Leggero e senza manutenzione

La modalità MemoryBuffer offre un'opzione di distribuzione semplice e leggera in cui il client incorporato di Woodpecker bufferizza temporaneamente le scritture in arrivo nella memoria e le invia periodicamente a un servizio di archiviazione di oggetti nel cloud. In questa modalità, il buffer di memoria è incorporato direttamente nel client, consentendo un batching efficiente prima del flushing su S3. I metadati sono gestiti tramite etcd per garantire coerenza e coordinamento. Questa modalità è più adatta per i carichi di lavoro pesanti in batch in distribuzioni su scala ridotta o in ambienti di produzione che privilegiano la semplicità rispetto alle prestazioni, soprattutto quando la bassa latenza di scrittura non è fondamentale. La latenza di scrittura in questa modalità è generalmente compresa tra 200 e 500 ms.

woodpecker memory mode deployment distribuzione della modalità di memoria woodpecker

QuorumBuffer - Ottimizzata per bassa latenza e alta durata

La modalità QuorumBuffer è progettata per carichi di lavoro di lettura/scrittura sensibili alla latenza e ad alta frequenza, che richiedono una reattività in tempo reale e una forte tolleranza agli errori. In questa modalità, il client di Woodpecker interagisce con un sistema quorum a tre repliche per fornire un buffering di scrittura ad alta velocità, garantendo una forte coerenza e un'alta disponibilità attraverso il consenso distribuito.

Una scrittura è considerata riuscita quando il client replica con successo i dati su almeno due dei tre nodi del quorum, in genere completando il tutto entro una cifra di millisecondi, dopodiché i dati vengono scaricati in modo asincrono sullo storage di oggetti del cloud per una durata a lungo termine. Questa architettura riduce al minimo lo stato sui nodi, elimina la necessità di grandi volumi di dischi locali ed evita le complesse riparazioni anti-entropia spesso necessarie nei sistemi tradizionali basati sul quorum.

Il risultato è un livello WAL snello e robusto, ideale per gli ambienti di produzione mission-critical in cui coerenza, disponibilità e ripristino rapido sono essenziali.

woodpecker quorum mode deployment implementazione della modalità quorum di woodpecker

Parametri di riferimento delle prestazioni

Abbiamo eseguito benchmark completi per valutare le prestazioni di Woodpecker in una configurazione a singolo nodo, singolo client e singolo log-stream. I risultati sono stati impressionanti se confrontati con Kafka e Pulsar:

SistemaKafkaPulsarWP MinioWP LocaleWP S3
Velocità di trasmissione129,96MB/s107MB/s71MB/s450MB/s750MB/s
latenza58 ms35 ms184 ms1,8 ms166 ms

Per contestualizzare, abbiamo misurato i limiti teorici di throughput di diversi backend di storage sulla nostra macchina di prova:

  • MinIO: ~110 MB/s
  • File system locale: 600-750 MB/s
  • Amazon S3 (singola istanza EC2): fino a 1,1 GB/s

Notevolmente, Woodpecker ha raggiunto costantemente il 60-80% del throughput massimo possibile per ogni backend, un livello di efficienza eccezionale per un middleware.

Principali informazioni sulle prestazioni

  • Modalità file system locale: Woodpecker ha raggiunto 450 MB/s - 3,5 volte più veloce di Kafka e 4,2 volte più veloce di Pulsar - con una latenza bassissima di soli 1,8 ms, che lo rende ideale per le implementazioni a nodo singolo ad alte prestazioni.
  • Modalità di archiviazione cloud (S3): Scrivendo direttamente su S3, Woodpecker ha raggiunto 750 MB/s (circa il 68% del limite teorico di S3), 5,8 volte superiore a Kafka e 7 volte superiore a Pulsar. Sebbene la latenza sia più elevata (166 ms), questa configurazione offre un throughput eccezionale per i carichi di lavoro orientati ai batch.
  • Modalità di archiviazione degli oggetti (MinIO): Anche con MinIO, Woodpecker ha raggiunto 71 MB/s, circa il 65% della capacità di MinIO. Queste prestazioni sono paragonabili a quelle di Kafka e Pulsar, ma con requisiti di risorse significativamente inferiori.

Woodpecker è particolarmente ottimizzato per le scritture concomitanti ad alto volume, dove il mantenimento dell'ordine è fondamentale. Questi risultati riflettono solo le prime fasi di sviluppo: le ottimizzazioni in corso per quanto riguarda l'unione dell'I/O, il buffering intelligente e il prefetching dovrebbero portare le prestazioni ancora più vicino ai limiti teorici.

Vantaggi operativi

L'architettura cloud-native di Woodpecker offre notevoli vantaggi operativi:

  • Zero gestione dello storage locale: Elimina la gestione dei volumi dei dischi, la configurazione RAID e i guasti hardware.
  • Scalabilità automatica: Lo storage si adatta allo storage a oggetti del cloud senza dover pianificare la capacità.
  • Efficienza dei costi: Storage pay-as-you-go con tiering e compressione automatici
  • Alta disponibilità: Sfrutta la durata di 11 nove anni dei provider cloud con un ripristino rapido.
  • Distribuzione semplificata: Due modalità di distribuzione (MemoryBuffer/QuorumBuffer) per soddisfare le diverse esigenze operative
  • Facilità di sviluppo: Configurazione dell'ambiente più rapida e architettura coerente in tutti gli ambienti

Questi vantaggi rendono Woodpecker particolarmente prezioso per RAG mission-critical, agenti AI e carichi di lavoro di ricerca a bassa latenza, dove la semplicità operativa è importante quanto le prestazioni.

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started
Feedback

Questa pagina è stata utile?