Optimization for ResolvingDecoder
---------------------------------
Key: AVRO-345
URL: https://issues.apache.org/jira/browse/AVRO-345
Project: Avro
Issue Type: Improvement
Components: java
Reporter: Thiruvalluvan M. G.
If the writer's and reader's schema are records, we allow the order of fields
to be different in them. The ResolvingDecoder returns the fields in the
writer's order. This is to avoid buffering. The current implementation uses
FieldAdjust action on the parser stack. The number of such action symbols is
equal to the number of reader fields. This causes performance problem because
the number of calls to advance() is almost double compared to the number of
calls in ValidatingDecoder.
This patch replaces the FieldAdjustAction symbols with FieldOrderAction
symbols. We have FieldOrderActions one per record, which is expected to be much
smaller than the number of fields. Though it changes the API for
ResolvingDecoder slightly, there is no impact because we do not have any users
yet.
I see a 10-15% improvement in my computer with Perf -S.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.