[
https://issues.apache.org/jira/browse/IGNITE-3372?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15350877#comment-15350877
]
Denis Magda commented on IGNITE-3372:
-------------------------------------
GitHub user dmagda opened a pull request:
https://github.com/apache/ignite/pull/831
ignite-3372: IgniteDataStreamer: pre-loading starvation if multiple
streamers preload the same cache
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/gridgain/apache-ignite ignite-3372
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/ignite/pull/831.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #831
> IgniteDataStreamer: pre-loading starvation if multiple streamers preload the
> same cache
> ---------------------------------------------------------------------------------------
>
> Key: IGNITE-3372
> URL: https://issues.apache.org/jira/browse/IGNITE-3372
> Project: Ignite
> Issue Type: Bug
> Reporter: Denis Magda
> Assignee: Denis Magda
> Priority: Critical
> Attachments: jstack2.log
>
>
> If to start preloading a cache from multiple streamers on a node that owns
> partitions that are being preloaded then we will get performance degradation
> at some point in cases if:
> - BinaryMarshaller is used;
> - an entry key is a custom object for which we store data in metadata cache.
> The main reason according to the thread dumps attached is a race-condition
> around
> {{org.apache.ignite.internal.processors.cache.GridCacheMapEntry.obsolete(GridCacheMapEntry.java:2888)}}
> To improve the performance both {{GridDhtPartitionTopologyImpl.onRemove}} and
> {{GridDhtPartitionTopologyImpl.onAdded}} must reuse a partition number that
> is hold in entry.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)