Implement float array compression using ALP#133
Conversation
a647943 to
b714920
Compare
|
I saw cargo is not happy with some of the format: https://github.com/XiangpengHao/liquid-cache/actions/runs/14100016722/job/39537945145#step:5:1 Can you run a |
2109f71 to
2c377c9
Compare
|
Now we get complaints from clippy: https://github.com/XiangpengHao/liquid-cache/actions/runs/14115617222/job/39547324519?pr=133#step:7:1 Can you fix them as well? you can run |
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #133 +/- ##
==========================================
+ Coverage 82.33% 82.66% +0.32%
==========================================
Files 36 37 +1
Lines 7864 8302 +438
Branches 7864 8302 +438
==========================================
+ Hits 6475 6863 +388
- Misses 1195 1243 +48
- Partials 194 196 +2 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
I noticed the implementation is quite similar to https://crates.io/crates/alp Should we use that implementation? @proteetpaul They're known good people and friends. |
I chose to reimplement it since their implementation used vectors and native Rust types, whereas Liquid uses Arrow arrays and Arrow types |
I see, that makes sense. Did you use any of their code? I checked that they are open sourced under Apache 2.0 (same as us), so it should be fine. Just want to find a way to acknowledge them if we use/based on their implementation. |
I used their code in a few places. Should we add an acknowledgement at the beginning of float_array.rs? |
That would be great! |
|
The implementation looks really good to me, I tweaked the benchmark a little bit and here's the performance I got. Basically we can encode at 1GB/s and decode at 5GB/s, quite impressive! |
|
I haven't fully understand every line of code, but the implementation is so good and also well tested, I tend to merge this anyway. This is very impressive work, thank you again @proteetpaul |
This commit implements the following: