[
https://issues.apache.org/jira/browse/IGNITE-3828?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15483473#comment-15483473
]
ASF GitHub Bot commented on IGNITE-3828:
----------------------------------------
Github user asfgit closed the pull request at:
https://github.com/apache/ignite/pull/1034
> Data streamer: use identity comparison for "activeKeys" in
> DataStreamerImpl.load0 method.
> -----------------------------------------------------------------------------------------
>
> Key: IGNITE-3828
> URL: https://issues.apache.org/jira/browse/IGNITE-3828
> Project: Ignite
> Issue Type: Task
> Components: streaming
> Affects Versions: 1.7
> Reporter: Vladimir Ozerov
> Assignee: Andrew Mashenkov
> Priority: Minor
> Labels: performance
> Fix For: 1.8
>
>
> See {{DataStreamerImpl.load0}} method. One of it's arguments is
> {{activeKeys}} collection. Elements from this collection is removed when
> batch is successfully applied on the server. Currently this collections is
> concurrent hash set of {{KeyCacheObject}}. In case hash conflict occurs
> (which is not unusual for streaming when lots of keys are loaded), it leads
> to full byte-by-byte comparison of binary objects. It might be very
> inefficient.
> To avoid the problem we should wrap {{KeyCacheObject}} into additional class
> with overridden {{equals}} and {{hashCode}} methods, so equality check is
> performed only through reference equality ({{==}}). This way hash conflicts
> will be resolved extremely fast.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)