[
https://issues.apache.org/jira/browse/IGNITE-11330?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16866855#comment-16866855
]
Pavel Pereslegin commented on IGNITE-11330:
-------------------------------------------
[~amashenkov], first, as I see, you have already fixed the main issue described
in this ticket ("partition demander should skip entries for invalid partition")
in IGNITE-10561.
_> Why we go this way? Is the test correct?_
I found that this refers to IGNITE-8554 and, from my point of view the main
reason is historical rebalancing. We can estimate the number of keys for
historical rebalancing by partition counters, so "estimatedRebalancingKeys"
should be calculated from partition update counters. And since in optimistic
scenario "estimated keys count" should be equal to "received keys count" the
number of received keys should be calculated in the same way.
But I found the useless code in supplier/demander and offheapmanager, which is
associated with the property "estimatedKeysCount" in
GridDhtPartitionSupplyMessage (now it's always "-1"). I think we can remove
unused code and replace "TODO" that refers to this ticket with comments.
What do you think?
> Partition demander should skip entries for invalid partition.
> -------------------------------------------------------------
>
> Key: IGNITE-11330
> URL: https://issues.apache.org/jira/browse/IGNITE-11330
> Project: Ignite
> Issue Type: Bug
> Components: cache
> Reporter: Andrew Mashenkov
> Priority: Major
> Labels: performance, rebalance
> Fix For: 2.8
>
>
> For now Partition demander tries to process all entries for invalid partition
> instead of switching to the next partition.
> Looks like, this was introduced with a fix IGNITE-8955 to make checkpoint
> locks fine-grained.
> A "for" loop under checkpoint readlock in
> GridDhtPartitionDemander.handleSupplyMessage() causes the issue. A flow can
> breaks inner "for" loop in case of invalid partition, but seems an outer
> "while" loop expected.
>
> To resolve this we can e.g. move CacheEntryInfo collection processing into
> separate method and just exit from it if invalid partition is detected.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)