Hello,

Apologies if the question was already asked, but should we care about FLOAT16 for ALP? Can FLOAT + ALP be more efficient than FLOAT16 + BYTE_STREAM_SPLIT + LZ4 for example?

Regards

Antoine.


Le 30/04/2026 à 01:10, PRATEEK GAUR a écrit :
Thanks Andrew and Micah for review feedback on the two PR's
1) (c++ arrow repo) https://github.com/apache/arrow/pull/48345/changes
2) (parquet-format repo) https://github.com/apache/parquet-format/pull/557

I have addressed all (unless I missed something) comments on the two PR's.

Best
Prateek

On Sat, Apr 25, 2026 at 1:08 PM PRATEEK GAUR <[email protected]> wrote:

Thanks Andrew and Micah.

`fair amount of feedback on at least the implementations`
For the c++ I have already started addressing the feedback, I should be
done with that Monday/Tuesday.
I think Vinoo too has been making good progress on the Java implementation.

Best
Prateek

On Sat, Apr 25, 2026 at 12:55 PM Andrew Lamb <[email protected]>
wrote:

Got it. Thank you for the clarification -- I will try and look into the
spec and the Rust implementation[1] in this next week

[1]: https://github.com/apache/arrow-rs/pull/9372

On Sat, Apr 25, 2026 at 12:01 PM Micah Kornfield <[email protected]>
wrote:

Hi Andrew,
I think there is a fair amount of feedback on at least the
implementations, typically I think we've waited till they are close to
mergeable before a final vote.  Otherwise I agree we are very close.

-Micah

On Saturday, April 25, 2026, Andrew Lamb <[email protected]> wrote:

Thanks Prateek,

I think from this content it looks to me like we are ready to start a
vote to explicitly accept ALP into Parquet

Does anyone know of a reason we should postpone it for longer?
Perhaps someone needs some more time to review?

Andrew



On Wed, Apr 22, 2026 at 1:00 PM PRATEEK GAUR <[email protected]>
wrote:

Hi team,



Hope everyone is doing well. I got a chance to work through all the
remaining feedback and update the spec doc. Here are the new artifacts

1) Spec document :
https://docs.google.com/document/d/1xz2cudDpN2Y1ImFcTXh15s-3fPtD_aWt/edit

2) Spec document in parquet format repo :
https://github.com/apache/parquet-format/pull/557

3) Alp implementation in arrow c++ repo :
https://github.com/apache/arrow/pull/48345/changes

4) Alp implementation in parquet-java repo : Work for Vinoo and Julien
  https://github.com/apache/parquet-java/pull/3397

5) PR with test and benchmarking artifacts in parquet-testing repo :
https://github.com/apache/parquet-testing/pull/100


And


    - Go : Arnav just submitted an in progress implementation in Go.
    https://github.com/apache/arrow-go/pull/704 (I haven't started
    looking at it yet)
    - Rust : I remember Andrew mentioned that this work is also in
    progress (So 4 languages!)


*Arrow C++ implementation *



The PR is out and was also used by Antoine to report the numbers as
reported here. Micah and Konstantin have given 1 round of feedback
and I'm addressing them today. Please note that the default
optimization flag for compiling is O2 and not Q3. I got around 70%
performance improvement in the decoding speed when using the O3 flag.



*Parqet-MR Java implementation (working with Vinoo and Julien) and **Cross
Language testing*


    Let me know if you have any questions or feedback.



Now pasting some performance numbers


   Table 1: C++ ALP Double Decode — Spotify Columns (Graviton 3, ARM
Neoverse V1)

   ┌──────────────────┬──────────────┬──────────────┬─────────┐

   │ Column           │  -O2 (MB/s)  │  -O3 (MB/s)  │ Speedup │

   ├──────────────────┼──────────────┼──────────────┼─────────┤

   │ valence          │     3,155    │     5,523    │  1.75x  │

   │ danceability     │     3,233    │     5,685    │  1.76x  │

   │ energy           │     3,197    │     5,652    │  1.77x  │

   │ loudness         │     3,186    │     5,473    │  1.72x  │

   └──────────────────┴──────────────┴──────────────┴─────────┘




On Wed, Feb 25, 2026 at 9:49 AM PRATEEK GAUR <[email protected]>
wrote:

@Micah Kornfield <[email protected]> : Got it.

@Andrew Lamb <[email protected]>


Do you think it would be good to start moving the spec development
into
markdown format, in preparation for finalizing it?


Yes I'll update the numbers for some of the examples I have in the
spec based
on the updated header size. Then we should be good to go for the
markdown format.

Thanks everyone!



Andrew

On Tue, Feb 17, 2026 at 7:28 PM PRATEEK GAUR <[email protected]>
wrote:

Hi team,

1) Andrew

    - Thanks for working on test files. My PR did add all the test
files I
    used to benchmark on datasets. Maybe we can club it together.
WIll also
aid
    cross language testing
    -  Kosta Tarasov working on Rust implementation. This is great.
Thanks


2) Antoine

    - Thanks a lot for reporting the numbers on AMD. Looks like you
are
    getting 8X the decoding performance of BSS. This is amazing!!.
    - Thanks for acknowledging the sampling design.
    - I agree with you on Fastlanes. In some crude experiments I
didn't get
    a good perf benefit from it on Graviton3 (but maybe there was
something
    wrong with my implementation).
    - Locking the 16bit exception encoding for the spec in this
case.
    - Awesome I think we have solved for all open questions minus
the
    version byte :). (will get back on this soon)


3) Micah

    - FastLanes : The current spec does allow for using FastLane
with the
    configurable enum value for layout. We should be able to inject
any
layout
    in the current design.


Working on resolving all remaining open comments on the spec this
week.

Best
Prateek


On Tue, Feb 10, 2026 at 3:37 AM Steve Loughran <
[email protected]>
wrote:

On Sun, 8 Feb 2026 at 18:12, Micah Kornfield <
[email protected]>
wrote:



It looks like the actual issue described for ORC in the paper
is that
it
has multiple sub-encodings in a batch.  This is different then
the
design
proposed here where there is still fixed encoding per page in
parquet.
Given reasonably sized pages I don't think branch
misprediction should
be a
big issue for new encodings.  I agree that we should be
conservative in
general for adding new encodings.


+1







Reply via email to