FilasBenchmarks

Benchmarks de Valkey Streams

Streams é o cenário principal para tarefas persistentes do Valkey Queue. Esta campanha mede o ciclo completo de uma mensagem:

XADD -> XREADGROUP -> XACK

O que será medido

O benchmark usa um publicador, um consumidor e um consumer group. A capacidade é aprovada somente quando o ciclo completo tem zero perdas, zero erros, zero pendências e P99 de latência menor ou igual a 100 ms.

Serão executados dois cenários por plano e payload:

  • ACK individual: uma mensagem por leitura e um XACK por mensagem;
  • ACK em lote: até 100 mensagens por leitura e um XACK para o lote.

A latência começa antes do XADD e termina depois da resposta bem-sucedida do XACK. O relatório inclui P50, P90, P95 e P99, usando o pior valor de três execuções de 30 segundos.

Retenção e armazenamento

Cada candidato usa um stream e consumer group exclusivos. As entradas são criadas com XADD MAXLEN ~ para limitar a retenção, e o stream é removido após a execução. O teste mede throughput, latência, XLEN, memória estimada e pendências; ele não tenta preencher todo o armazenamento persistente do plano.

O armazenamento persistente suporta retenção e recuperação, mas não significa que cada XADD aguarde fsync síncrono. O comportamento também depende da configuração de persistência do Valkey.

Status

A implementação do executor está disponível no benchmark local. Os resultados por plano serão adicionados somente após a campanha confirmatória completa; nenhuma capacidade de Streams é inferida a partir dos resultados de Pub/Sub.

Limitações

Este cenário mede um produtor e um consumidor. Ele não representa escala com quatro workers, recuperação com XAUTOCLAIM, dead-letter streams, retenção de longo prazo ou preenchimento da cota de armazenamento.

Próximos passos

Nessa página