apache / apache/parquet-java

checkBlockSizeReached zero record size perf issue

Abierto
#2,720 0 comentarios 0 reacciones 0 asignados Ver en GitHub
Component: Java Component: Parquet Priority: Minor Type: bug
Lenguaje dominante
Java
Estrellas
3.1k
Forks
1.6k
Merge medio
3 d 12 h
PR fusionados (30 d)
33

Descripción

Parquet checks Block size after writing records to decide when it shall flush. This is relatively expensive, so it estimates the next check based on record size, record count etc.

For small records (less than 1byte after compression), the average record size is 0 after integer division. This caused overflow when calculating the next record count for block size check, resulting block size being checked for every record.

**Reporter**: [Huicheng Song](https://issues.apache.org/jira/secure/ViewProfile.jspa?name=songhuicheng)

**Note**: *This issue was originally created as [PARQUET-2199](https://issues.apache.org/jira/browse/PARQUET-2199). Please see the [migration documentation](https://issues.apache.org/jira/browse/PARQUET-2502) for further details.*

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Línea de trabajo

Empieza rastreando checkBlockSizeReached y la lógica de estimación del tamaño de bloque descrita en el issue. Reproduce el caso con registros de menos de un byte comprimido y verifica después que el cálculo no produzca un desbordamiento y que las comprobaciones del tamaño de bloque no se realicen para cada registro.

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

Evaluación

Stack tecnológico
java
Área
data-engineering, performance
Tipo de issue
Error
Dificultad
2/5
Tiempo estimado
1-3 horas
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
45/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.