Hardwood acelera la lectura de listas de longitud fija en Parquet

Fuentes: A Fast Path for Fixed-Length Lists in Parquet

Hardwood, un lector de Parquet en Java, incorpora una ruta rápida para listas de longitud fija que evita el costoso mecanismo de reconstrucción de registros Dremel cuando todas las listas de una página tienen el mismo tamaño. La técnica detecta, examinando las secuencias de niveles de definición y repetición, qué páginas contienen únicamente listas uniformes y las procesa como si fueran columnas planas. En pruebas con archivos comprimidos con ZSTD, las listas de 3 elementos (por ejemplo, coordenadas 3D) logran una aceleración de 1,1× en el lector por filas y 2,5× en el lector por columnas, mientras que las listas de 768 elementos (como los embeddings vectoriales) alcanzan 3,7× y 2,5× respectivamente, igualando el rendimiento de una columna completamente plana. La ventaja del lector por filas crece con la longitud de la lista, porque elimina la sobrecarga de materializar un objeto por registro. La optimización también acelera columnas con nulos posibles que en la práctica no contienen ninguno, un atajo ya presente en otros lectores como DuckDB. Se trata de una mejora puente mientras la comunidad Apache Parquet discute añadir un tipo lógico FIXED_SIZE_LIST que elimine de raíz la ineficiencia del formato para estos casos.