Hi all,
As discussed yesterday, I want to share the 3 thrift definitions of footer:
1. the current footer
2. the current footer without duplicate fields and with the jump table
3. the new footerThanks again for helping with the benchmark. Let me know if you have any questions.
Best,
Jiayi
Hi Rok,
Thanks for putting together this microbenchmark. It looks great!
One thing I found slightly misleading is that the core part of the modular footer does not include column chunk statistics yet. To make the comparison fair, I removed the statistics from all three footer definitions.
The benchmark also includes a stat bytes dimension, which I do not think has any effect on any of the three footer formats in the current setup.
Other than that, it looks good to me!
Best,
Jiayi
Hey all,I ran a set of benchmark sweeps with soa, jumptable and proposed footer formats Jiayi provided. Deserializaion and serialization. Linked is a self contained notebook written with help of codex. All benchmarks are lies, so take this with a grain of salt! : https://gist.github.com/rok/fb11b94902b56448c84510c139c12d81tldr: soa wins, jumptable is good too.Rok
The original three Thrift definitions I sent already had the statistics removed. So, if you are testing with those Thrift files, the results should already be without statistics.
Hi Rok,
It looks like the notebook does not show the change in footer size. The only comparison displayed is the write cost in terms of time.
It would be interesting to see how much space the SoA encoding specifically saves compared with the optimized jump-table format after redundant fields are removed.
Best,
Jiayi
Hi everyone,
I made a few small updates to the notebook:
The write cost benchmark is still a bit questionable because we currently call serialize on each ColumnChunkMetadata to get its size, although this could be implemented in a nicer way. In general, we are not very concerned about writer speed unless there is a significant change.