Pica-pau
No Milvus 2.6, o Woodpecker substitui o Kafka e o Pulsar por um sistema de log de gravação antecipada (WAL) nativo da nuvem. Projetado para armazenamento de objetos, o Woodpecker simplifica as operações, maximiza o rendimento e escala sem esforço.
Objetivos de design do Woodpecker:
A mais alta taxa de transferência em ambientes de nuvem
Registo duradouro, apenas de anexos, para uma recuperação fiável
Mínima sobrecarga operacional, sem discos locais ou brokers externos
Arquitetura de disco zero
A principal inovação do Woodpecker é a sua arquitetura de disco zero:
- Todos os dados de registo armazenados no armazenamento de objectos na nuvem (como o Amazon S3, o Google Cloud Storage ou o Alibaba OS)
- Metadados geridos através de armazenamentos de valores chave distribuídos como o etcd
- Sem dependências de disco local para operações principais
camadas do woodpecker
Componentes da arquitetura
Uma implantação padrão do Woodpecker inclui os seguintes componentes:
- Cliente: Camada de interface para emitir solicitações de leitura e gravação
- LogStore: Gerencia o buffer de gravação de alta velocidade, os uploads assíncronos para o armazenamento e a compactação de logs
- Backend de armazenamento: Suporta serviços de armazenamento escaláveis e de baixo custo, como S3, GCS e sistemas de arquivos como EFS
- Etcd: Armazena metadados e coordena o estado do log em nós distribuídos
Modos de implantação
O Woodpecker oferece dois modos de implantação para atender às suas necessidades específicas:
MemoryBuffer - Leve e livre de manutenção
O modo MemoryBuffer oferece uma opção de implantação simples e leve, em que o cliente incorporado do Woodpecker armazena temporariamente em memória as gravações recebidas e as envia periodicamente para um serviço de armazenamento de objetos na nuvem. Neste modo, o buffer de memória é embutido diretamente no cliente, permitindo um agrupamento eficiente antes da descarga para o S3. Os metadados são gerenciados usando o etcd para garantir consistência e coordenação. Este modo é mais adequado para cargas de trabalho pesadas em lote em implantações de menor escala ou ambientes de produção que priorizam a simplicidade sobre o desempenho, especialmente quando a baixa latência de gravação não é crítica. A latência de gravação neste modo é geralmente entre 200-500 ms.
implantação do modo de memória do pica-pau
QuorumBuffer - Optimizado para baixa latência e alta durabilidade
O modo QuorumBuffer foi projetado para cargas de trabalho de leitura/gravação sensíveis à latência e de alta frequência que requerem capacidade de resposta em tempo real e forte tolerância a falhas. Nesse modo, o cliente do Woodpecker interage com um sistema de quorum de três réplicas para fornecer buffer de gravação de alta velocidade, garantindo forte consistência e alta disponibilidade por meio de consenso distribuído.
Uma gravação é considerada bem-sucedida quando o cliente replica com sucesso os dados para pelo menos dois dos três nós de quorum, geralmente concluindo em milissegundos de um dígito, após o que os dados são descarregados de forma assíncrona no armazenamento de objetos na nuvem para durabilidade a longo prazo. Esta arquitetura minimiza o estado no nó, elimina a necessidade de grandes volumes de disco locais e evita reparações complexas de anti-entropia frequentemente necessárias nos sistemas tradicionais baseados em quorum.
O resultado é uma camada WAL simplificada e robusta, ideal para ambientes de produção de missão crítica, onde consistência, disponibilidade e recuperação rápida são essenciais.
implantação do modo quorum do woodpecker
Benchmarks de desempenho
Executamos benchmarks abrangentes para avaliar o desempenho do Woodpecker em uma configuração de nó único, cliente único e fluxo de log único. Os resultados foram impressionantes quando comparados ao Kafka e ao Pulsar:
| Sistema | Kafka | Pulsar | WP Minio | WP Local | WP S3 |
|---|---|---|---|---|---|
| Taxa de transferência | 129,96MB/s | 107MB/s | 71MB/s | 450MB/s | 750MB/s |
| latência | 58ms | 35ms | 184ms | 1,8 ms | 166ms |
Para contextualizar, medimos os limites teóricos de throughput de diferentes backends de armazenamento em nossa máquina de teste:
- MinIO: ~110 MB/s
- Sistema de ficheiros local: 600-750 MB/s
- Amazon S3 (instância única do EC2): até 1,1 GB/s
Notavelmente, o Woodpecker atingiu consistentemente 60-80% da taxa de transferência máxima possível para cada backend - um nível de eficiência excecional para middleware.
Principais informações sobre desempenho
- Modo de sistema de arquivos local: O Woodpecker alcançou 450 MB/s - 3,5 vezes mais rápido que o Kafka e 4,2 vezes mais rápido que o Pulsar - com latência ultrabaixa de apenas 1,8 ms, o que o torna ideal para implantações de nó único de alto desempenho.
- Modo de armazenamento em nuvem (S3): Ao gravar diretamente no S3, o Woodpecker atingiu 750 MB/s (cerca de 68% do limite teórico do S3), 5,8 vezes mais rápido que o Kafka e 7 vezes mais rápido que o Pulsar. Embora a latência seja maior (166 ms), essa configuração fornece uma taxa de transferência excecional para cargas de trabalho orientadas por lote.
- Modo de armazenamento de objetos (MinIO): Mesmo com o MinIO, o Woodpecker atingiu 71 MB/s - cerca de 65% da capacidade do MinIO. Esse desempenho é comparável ao do Kafka e do Pulsar, mas com requisitos de recursos significativamente menores.
O Woodpecker é particularmente otimizado para gravações simultâneas e de alto volume, em que manter a ordem é fundamental. E esses resultados refletem apenas os estágios iniciais de desenvolvimento - espera-se que as otimizações em andamento na fusão de E/S, no buffer inteligente e na pré-busca levem o desempenho ainda mais perto dos limites teóricos.
Benefícios operacionais
A arquitetura nativa da nuvem do Woodpecker oferece vantagens operacionais significativas:
- Gerenciamento de armazenamento local zero: Elimina o gerenciamento de volumes de disco, a configuração de RAID e as falhas de hardware
- Dimensionamento automático: O armazenamento é dimensionado com o armazenamento de objetos na nuvem sem planejamento de capacidade
- Eficiência de custos: Armazenamento pago conforme o uso com classificação e compactação automáticas
- Alta disponibilidade: Aproveita a durabilidade de 11 noves dos provedores de nuvem com recuperação rápida
- Implantação simplificada: Dois modos de implantação (MemoryBuffer/QuorumBuffer) atendem a diferentes necessidades operacionais
- Fácil de usar para desenvolvedores: Configuração mais rápida do ambiente e arquitetura consistente em todos os ambientes
Essas vantagens tornam o Woodpecker particularmente valioso para RAGs de missão crítica, agentes de IA e cargas de trabalho de pesquisa de baixa latência, em que a simplicidade operacional é tão importante quanto o desempenho.