Le 10/07/2026 à 00:13, Andrew McCormick via dev a écrit :
I built a prototype of hint-supported reads for option C on top of Rok's
work. Here's the results I see:

   arm         ns/row (mean +/- sd)   note
   A/FLBA      2730 +/- 13            no levels on disk (FLBA->float
reinterpret adds a bit)
   B/VECTOR    2337 +/- 10            no levels, not forward compatible
   C-hint      2356 +/-  5            skip-levels reader on a plain
LIST; fully backward-compatible
   C-dremel    3830 +/- 22            annotation ignored, full Dremel
(aka what Rok measured)

So basically when you use the hint C is within noise of B (<1%). Full
details and code here: https://termbin.com/kj2x
(gist isn't availble on my db github).

One remaining question is what happens for definition levels (not repetition) in option C. Empty lists need a specific definition level to encode, therefore option C makes the max def level larger than option B.

An optional column with option C might therefore take more time decoding than option B (especially if crossing the threshold from 1-bit to 2-bit levels).

Regards

Antoine.






On Tue, Jul 7, 2026 at 8:59 AM Gunnar Morling <[email protected]>
wrote:

On Tue, 7 Jul 2026 at 17:18, Antoine Pitrou <[email protected]> wrote:

Le 06/07/2026 à 23:29, Gunnar Morling a écrit :
2. Without the logical type (and with a little bit extra complexity)
a
smart enough *reader* can walk the def/rep levels before decoding,
infer

At the cost of higher implementation complexity and maintenance cost.
Does any mainstream open source implementation of Parquet do this?

Triggered by the conversation on the call last week, I implemented
pretty much this in Hardwood [1].

Great, thank you. `FixedSizeListDetector.java` is highly non-trivial and
definitely has a maintenance cost. Though part of it seems about not
having a RLE parser abstraction available.

Yes, I think we all agree that a dedicated type will make maintainers'
lives much easier and is the right solution eventually. But until that
has landed, I think there's some juice worth the squeeze here.


Regards

Antoine.






Reply via email to