apache / apache/arrow-java

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

Abierto
#599 9 comentarios 3 reacciones 0 asignados Ver en GitHub
help wanted Type: enhancement
Lenguaje dominante
Java
Estrellas
94
Forks
152
Merge medio
3 d 16 h
PR fusionados (30 d)
11

Descripción

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)

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

Comienza con fillHoles() en la ruta de expansión del búfer de lectura y revisa la imagen del profiler y el contexto del benchmark de 300 columnas descritos en el issue. Compara el rellenado actual elemento por elemento con un enfoque bulk usando la misma carga de trabajo; se considera terminado cuando haya una conclusión medida sobre la preocupación de rendimiento y un cambio específico solo si la comparación lo respalda.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
java
Área
performance
Tipo de issue
Refactorización
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Necesita aclaración
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.