You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Vladimir Ozerov (JIRA)" <ji...@apache.org> on 2016/09/02 15:14:20 UTC

[jira] [Created] (IGNITE-3828) Data streamer: use identity comparison for "activeKeys" in DataStreamerImpl.load0 method.

Vladimir Ozerov created IGNITE-3828:
---------------------------------------

             Summary: 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
             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)