apache / apache/arrow-java

Performance concern: fillHoles() method and read buffer expansion efficiency.

Aberta
#599 9 comentários 3 reações 0 responsáveis Ver no GitHub
help wanted Type: enhancement
Linguagem predominante
Java
Estrelas
94
Forks
152
Merge médio
3d 16h
PRs com merge (30d)
11

Descrição

Hi everyone,

I have the following use case: I’m benchmarking the read throughput performance when dealing with a large number of non-dictionary string columns (300 columns). Based on the profiler output (see the attached picture), I’ve noticed that a significant amount of time is spent in the fillHoles() method, which is part of the read buffer expansion process.

My question is: why is the buffer filled one element at a time instead of using a bulk operation? Wouldn’t a batch approach be more efficient?

Looking forward to your insights. Thanks!

![Image](https://github.com/user-attachments/assets/57108c7a-126d-4370-9a01-4f0aa85218d9)

Guia de contribuição

Abrir o guia de contribuição

Direção de pesquisa

Comece com fillHoles() no caminho de expansão do buffer de leitura e analise a imagem do profiler e o contexto do benchmark de 300 colunas descritos na issue. Compare o preenchimento atual elemento por elemento com uma abordagem bulk usando a mesma carga de trabalho; considera-se concluído quando houver uma conclusão mensurada sobre a preocupação de desempenho e uma mudança focada somente se a comparação a sustentar.

Escrita pelo modelo de indexação a partir do texto da issue.

Avaliação

Stack de tecnologia
java
Domínio
performance
Tipo de issue
Refatoração
Dificuldade
4/5
Tempo estimado
3-5 dias
Status de atividade
Estagnada
Clareza
Precisa de esclarecimento
Facilidade para iniciantes
35/100

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.