[ https://issues.apache.org/jira/browse/AVRO-345?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12801891#action_12801891 ]
Doug Cutting commented on AVRO-345: ----------------------------------- +1 This looks good to me. We talked about re-writing GenericDatumReader to use ResolvingDecoder as an optimization. Did that end up being faster? If so, have you yet filed an issue for that? > 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.