[BACKPORT] Fix EP index queries consistency #13892
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
EE part: https://github.com/hazelcast/hazelcast-enterprise/pull/2473
EPs equipped with predicates are trying to utilize global indexes to
narrow down the key set to operate on. This change fixes the following
problems:
There were no migration stamp validations performed to prevent EPs
from operating on stale index data (original fix and idea by Matko).
We were not producing WrongTargetException for out-migrated
partitions, as a result the caller (InvokeOnPartitions) was not retrying
EPs on such partitions.
Partition scope provided to PartitionIteratingOperation was not
respected. As a result, operations produced by factories providing
their own partition sets were running on more partitions than expected.
By a lucky coincidence all affected factories were producing idempotent
operations, so that was affecting only the performance.
(cherry-picked from 4014d72)
Fixes: https://github.com/hazelcast/hazelcast-enterprise/issues/2277