djkoloski / rust_serialization_benchmark

Benchmarks for rust serialization frameworks
514 stars 48 forks source link

Apache Avro is not well supported #66

Open forrestli74 opened 2 months ago

forrestli74 commented 2 months ago

TL;DR: Apache Avro rust support is bad. Don't bother adding it here. I tried and gave up. If you still want it benchmarked, keep reading and provide feedback.

This is more of a post than an issue. Feel free to close it. I want to at least put it in the issue list, so others can search for it.

Based on my understanding, avro offers very compact encoding. However the rust implementation is purely runtime, therefore offers very poor performance. It would be nice to add it to the benchmarks and test my understanding.

However I gave up due to the following issues:

All of the issues can be worked around by building custom logic. But it takes a lot of time and the benchmark feels less authentic.

WIP commit: https://github.com/theforrestli/rust_serialization_benchmark/commit/5a95305ac993e1a0ed03ee3cfae3c6445dc72f1a

Ideally I should issue these issues with avro or even fix it for them in their repo. But some of them are not easily fixable, some of them have already been tracked or worked on.

Depending on feedback, I might finish writing the custom work around and output some numbers in the benchmark table.