[
https://issues.apache.org/jira/browse/AVRO-345?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Thiruvalluvan M. G. updated AVRO-345:
-------------------------------------
Assignee: Thiruvalluvan M. G.
Status: Patch Available (was: Open)
> 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.
> Assignee: Thiruvalluvan M. G.
> Attachments: AVRO-345-test.patch, AVRO-345.patch
>
>
> 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.