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.

Reply via email to