[
https://issues.apache.org/jira/browse/AVRO-911?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13121630#comment-13121630
]
Milind Bhandarkar commented on AVRO-911:
----------------------------------------
I always believed that object reuse (as was done in mapreduce a few years ago),
was premature optimization. Indeed, in mapreduce too, even now people get
surprised when iter.getNext() returns the same object reference everytime, and
causes a lot of headache. So, I think removing object reuse in Avro is a great
step forward.
> remove object reuse from Java APIs
> ----------------------------------
>
> Key: AVRO-911
> URL: https://issues.apache.org/jira/browse/AVRO-911
> Project: Avro
> Issue Type: Improvement
> Components: java
> Reporter: Doug Cutting
> Assignee: Doug Cutting
> Fix For: 1.6.0
>
> Attachments: perf-reuse.patch
>
>
> Avro's Java APIs were designed to permit object reuse when reading with the
> assumption that would provide performance advantages. In particular, the old
> parameter in DatumReader<T>.read(T old, Decoder), the Utf8 class, and the
> GenericArray.peek() method were all designed for this purpose. But I am
> unable to see significant performance improvements when objects are reused.
> I tried modifying Perf.java's GenericTest to reuse records, and its
> StringTest to not reuse Utf8 instances and, in both cases, performance is not
> substantially altered.
> If we were to remove these then issues such as AVRO-803 would disappear.
> Always using java.lang.String instead of Utf8 would remove a lot of user
> confusion.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira