Desempenho Distribuído vs. Nó Único em Benchmarks TPC-H do Polars
Aprofundamento CEVIU
Aprofundamento
A comparação de desempenho entre o Polars em configuração distribuída e em nó único revela nuances cruciais para arquitetos de dados. O estudo utilizou um setup com especificações agregadas similares: 128 vCPUs e 512GB de RAM, porém implementadas de formas diferentes. A versão distribuída consistiu em 32 instâncias m8i.xlarge, enquanto o nó único usou uma m8i.32xlarge. O benchmark TPC-H (na implementação PDS-H de 1TB) mostrou que, para queries intensivas em I/O, a configuração distribuída teve vantagem, pois a largura de banda de rede agregada (até 400 Gbps de burst) superou o limite de 50 Gbps do nó único. Isso é especialmente visível em operações como a Q6, que é quase puramente leitura de dados do S3 com filtragem.
Por outro lado, queries com múltiplos joins (como Q8 e Q9) performaram melhor no nó único. O overhead do shuffle de dados pela rede no ambiente distribuído neutralizou os ganhos de paralelização. Além disso, a arquitetura NUMA (Non-Uniform Memory Access) em instâncias de nó único maiores pode introduzir gargalos. A engine de streaming do Polars, com seu mecanismo de work stealing, pode degradar o desempenho em máquinas com múltiplas zonas NUMA, como a m8i.32xlarge. O teste em uma r8i.16xlarge, com um único nó NUMA, confirmou que a execução de nó único é mais rápida para a maioria das queries, exceto as que dependem intensamente de I/O de rede.
O que mudou
A abordagem do Polars em demonstrar a força da sua engine evoluiu. Se antes, conforme a equipe Polars já havia comparado em uma publicação anterior, o foco era o desempenho da sua engine distribuída contra o Apache Spark, agora o cenário é outro. O ponto é avaliar a própria engine distribuída contra a performance aclamada do Polars em nó único. Essa mudança de foco reflete a maturidade da oferta distribuída e a busca por um entendimento mais aprofundado dos cenários ideais para cada tipo de arquitetura. É uma evolução na estratégia de benchmarking que serve de guia para os usuários.
Olhando para o futuro, a equipe planeja implementar bloom filters pushdown entre os estágios de processamento. Essa melhoria técnica tem o potencial de reduzir drasticamente o volume de dados movimentados durante as operações de shuffle, o que poderia alterar o veredito atual sobre o desempenho em queries com múltiplos joins, tornando a performance distribuída mais competitiva nesses cenários.
Por que isso importa
Para engenheiros de dados e arquitetos, a decisão entre escalar verticalmente (nó único) ou horizontalmente (distribuído) vai muito além da simples capacidade de CPU e RAM. Este estudo do Polars sublinha que a natureza das cargas de trabalho, intensiva em I/O ou em processamento de joins, e até mesmo a arquitetura física das máquinas (como o NUMA e a capacidade de rede) são fatores determinantes. O CEVIU News já apontou, na matéria de 1 de junho de 2026 sobre o CostBench da ClickHouse, a importância de avaliar a relação custo-performance, e este novo benchmark do Polars reforça que a solução mais rápida nem sempre é a mais eficiente ou a mais barata para cada caso de uso específico.
A compreensão detalhada desses tradeoffs permite otimizar custos e garantir a escalabilidade adequada para diferentes pipelines de dados, evitando surpresas de desempenho. É fundamental para projetar sistemas de dados que sejam performáticos e sustentáveis a longo prazo, considerando as particularidades de cada provedor de nuvem e de cada workload.
Linha do tempo
ClickHouse lança o CostBench, benchmark open-source para custo-performance em Data Warehouses.
CEVIU News publica comparação entre Ray Data e Daft para data lakes multimodais.
CEVIU News aborda escalabilidade do StarRocks no Amazon EKS com KEDA e Karpenter para cargas OLAP.
CEVIU News explica as diferenças entre paralelismo no broker e paralelismo local no cliente em mensageria.
Estudo compara Polars distribuído vs. nó único em benchmarks TPC-H, revelando nuances de desempenho.
Perguntas frequentes
O que é Polars e por que ele é relevante no cenário de processamento de dados?
Polars é uma biblioteca de processamento de dados em Python e Rust conhecida por sua alta performance em nó único. Ele ganhou popularidade por simplificar operações complexas e atrasar a necessidade de computação distribuída, oferecendo uma alternativa rápida e eficiente para datasets que cabem em uma única máquina, mas que agora também conta com uma versão distribuída para escalar ainda mais.
Qual a principal diferença de desempenho entre Polars distribuído e nó único no benchmark?
O Polars distribuído performou melhor em queries intensivas em I/O, graças à sua maior largura de banda de rede agregada. Já o Polars em nó único mostrou vantagem em queries com múltiplos joins, onde o custo de shuffle de dados na rede do ambiente distribuído se tornou um gargalo.
O que é o benchmark TPC-H (PDS-H) e qual sua importância?
O TPC-H é um benchmark padrão da indústria para avaliar sistemas de suporte à decisão, medindo o desempenho em queries analíticas. O PDS-H é uma implementação open-source derivada do TPC-H, usando o mesmo modelo de dados e carga de trabalho para permitir comparações de performance, neste caso, entre configurações do Polars.
Como a arquitetura NUMA afeta o desempenho do Polars em nó único?
Em máquinas grandes com múltiplos nós NUMA, a engine de streaming do Polars, que usa work stealing, pode ter o desempenho degradado devido à contenção de memória. O acesso à memória entre diferentes regiões NUMA é mais lento, transformando o que deveria ser um benefício em um gargalo de performance para certas operações.
Fontes
- pola.rsfonte original
- Categoria
- CEVIU Dados
- Publicado
- 16 de julho de 2026
- Editoria
- CEVIU Dados

