AVRO-3048: Use SpecificRecord's MODEL$ in builder creation #1206
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR addresses AVRO-3048 (https://issues.apache.org/jira/projects/AVRO/issues/AVRO-3048), improving
newBuilder()performance for newly generatedSpecificRecords by reusing the already existingSpecificDatainstance (MODEL$) in the specific records themselves.No new unit tests should be required, for the current changes are already covered by existing unit tests. Reference files for code generation have been updated to reflect the minor changes to the record and errror templates.
Further measures might be required to alleviate the performance regression of AVRO-3048 for existing code that cannot be re-generated easily.
If this PR is found feasible, I would suggest cherry-picking it for 1.9 and 1.10 branches, too, to allow for existing applications to benefit from the changes.