You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avro.apache.org by "Douglas Kaminsky (JIRA)" <ji...@apache.org> on 2011/07/06 23:57:16 UTC

[jira] [Commented] (AVRO-853) Cache hash codes in Schema and Field

    [ https://issues.apache.org/jira/browse/AVRO-853?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13060864#comment-13060864 ] 

Douglas Kaminsky commented on AVRO-853:
---------------------------------------

Also, the thread assumes single-threaded behavior - I believe in the worst case hash code could still be calculated multiple times due to multithreading visibility issues, but since it's stored as a primitive there should be no chance of having an "invalid state."

> Cache hash codes in Schema and Field
> ------------------------------------
>
>                 Key: AVRO-853
>                 URL: https://issues.apache.org/jira/browse/AVRO-853
>             Project: Avro
>          Issue Type: Improvement
>          Components: java
>    Affects Versions: 1.5.1
>            Reporter: Douglas Kaminsky
>         Attachments: AVRO-853.patch
>
>
> We are experiencing a serious performance degradation when trying to store/retrieve fields and schemas in hash-based data structures (eg. HashMap). Since all fields and schemas are immutable (with the exception of RecordSchema allowing deferred setting of Fields) it makes sense to cache the hash code on the object instead of recalculating every time the hashCode method gets called. 
> (Are there other mutable Schema sub-types that I'm not thinking about?)

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira