-
Notifications
You must be signed in to change notification settings - Fork 57
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Regression in EnumArray fast-avro serialization under Avro 1.4 #50
Comments
Interesting, did you see any related changes after 0.1.9? |
No, I have no idea what has happened so far. @gaojieliu |
Could you share the generated fast-serializers with 0.1.9 and the latest version? |
I have made a similar change for Enum Schema (Avro 1.4) in FastSerializerGenerator like FastDeserializerGenerator in #49 .
|
That sounds great, but it is a separate improvement, which would like to have anyway. But I think it is still important to understand the difference between 0.1.9 and the latest version by looking at the difference of the generated serializers. |
I have checked the generated serializers between 0.1.9 and the latest version under Avro 1.4. They are exactly the same BenchmarkSchemaGenericSerializer. I found the old Avro-1.4 EnumArray benchmark result was not correct since the Enum value index used in regular avro-1.4 and fast-avro were different... The value string used in fast-avro benchmark happen to be shorter than the one used in regular avro-1.4. So fast-avro result was faster than regular avro 1.4 in the old test. I re-benchmarked the EnumArray using 0.1.9 under Avro 1.4, the result was the same as above benchmark result. Fast-avro 0.1.9 is slower.
|
Fast-avro serialization is slower than regular avro for EnumArray schema under Avro 1.4. Check out below benchmark results and schema pattern. It was faster before version 0.1.9
The serialization under Avro 1.8 is fine.
Avro 1.4 benchmark resut:
Avro 1.8 benchmark result:
Schema (Test record array contains 200 enum elements)
The text was updated successfully, but these errors were encountered: