Merge remote-tracking branch 'remotes/origin/ignite-5267' into ignite-5075-pds
# Conflicts: # modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtGetSingleFuture.java # modules/pds/src/main/java/org/apache/ignite/internal/processors/cache/database/GridCacheDatabaseSharedManager.java Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/a814dc4f Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/a814dc4f Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/a814dc4f Branch: refs/heads/ignite-5075-pds Commit: a814dc4f14ed02a6d00af42567682bd86cae6dd5 Parents: 4f19e3e c6313b7 Author: sboikov <[email protected]> Authored: Mon May 29 10:56:02 2017 +0300 Committer: sboikov <[email protected]> Committed: Mon May 29 10:56:02 2017 +0300 ---------------------------------------------------------------------- .../apache/ignite/IgniteSystemProperties.java | 3 + .../configuration/MemoryConfiguration.java | 12 ++- .../pagemem/impl/PageMemoryNoStoreImpl.java | 15 +++- .../IgniteCacheDatabaseSharedManager.java | 86 ++++++++++++-------- .../distributed/dht/GridDhtGetSingleFuture.java | 29 ++++--- .../ignite/internal/util/IgniteUtils.java | 29 +++++++ .../binary/BinaryObjectExceptionSelfTest.java | 10 ++- ...CacheExchangeMessageDuplicatedStateTest.java | 12 +-- .../database/MetadataStorageSelfTest.java | 13 ++- .../TcpDiscoveryIpFinderAbstractSelfTest.java | 7 ++ .../vm/TcpDiscoveryVmIpFinderSelfTest.java | 7 +- .../GridCacheDatabaseSharedManager.java | 38 +++++++-- ...istentStoreCacheRebalancingAbstractTest.java | 4 + .../db/file/PageStoreEvictionSelfTest.java | 20 +++-- 14 files changed, 202 insertions(+), 83 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/a814dc4f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/IgniteCacheDatabaseSharedManager.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/a814dc4f/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtGetSingleFuture.java ---------------------------------------------------------------------- diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtGetSingleFuture.java index b9007ba,9a7cfdc..1a81f6e --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtGetSingleFuture.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtGetSingleFuture.java @@@ -266,25 -265,28 +266,30 @@@ public final class GridDhtGetSingleFutu * @return {@code True} if mapped. */ private boolean map(KeyCacheObject key) { - int keyPart = cctx.affinity().partition(key); + try { ++ int keyPart = cctx.affinity().partition(key); + - GridDhtLocalPartition part = topVer.topologyVersion() > 0 ? - cache().topology().localPartition(keyPart, topVer, true) : - cache().topology().localPartition(keyPart); + GridDhtLocalPartition part = topVer.topologyVersion() > 0 ? - cache().topology().localPartition(cctx.affinity().partition(key), topVer, true) : - cache().topology().localPartition(key, false); ++ cache().topology().localPartition(keyPart, topVer, true) : ++ cache().topology().localPartition(keyPart); - if (part == null) - return false; + if (part == null) + return false; - assert this.part == -1; + assert this.part == -1; - // By reserving, we make sure that partition won't be unloaded while processed. - if (part.reserve()) { - this.part = part.id(); + // By reserving, we make sure that partition won't be unloaded while processed. + if (part.reserve()) { + this.part = part.id(); - return true; + return true; + } + else + return false; } - else + catch (GridDhtInvalidPartitionException ex) { return false; + } } /** http://git-wip-us.apache.org/repos/asf/ignite/blob/a814dc4f/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/CacheExchangeMessageDuplicatedStateTest.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/a814dc4f/modules/pds/src/main/java/org/apache/ignite/internal/processors/cache/database/GridCacheDatabaseSharedManager.java ---------------------------------------------------------------------- diff --cc modules/pds/src/main/java/org/apache/ignite/internal/processors/cache/database/GridCacheDatabaseSharedManager.java index b805391,a78ba27..042d44c --- a/modules/pds/src/main/java/org/apache/ignite/internal/processors/cache/database/GridCacheDatabaseSharedManager.java +++ b/modules/pds/src/main/java/org/apache/ignite/internal/processors/cache/database/GridCacheDatabaseSharedManager.java @@@ -879,15 -899,15 +903,15 @@@ public class GridCacheDatabaseSharedMan reservedForExchange = new HashMap<>(); - for (GridCacheContext cacheCtx : (Collection<GridCacheContext>)cctx.cacheContexts()) { - if (cacheCtx.isLocal()) + for (CacheGroupInfrastructure grp : cctx.cache().cacheGroups()) { + if (grp.isLocal()) continue; - for (GridDhtLocalPartition part : cacheCtx.topology().currentLocalPartitions()) { - if (part.state() != GridDhtPartitionState.OWNING || part.dataStore().size() <= walRebalanceThreshold) + for (GridDhtLocalPartition part : grp.topology().currentLocalPartitions()) { - if (part.state() != GridDhtPartitionState.OWNING || part.dataStore().fullSize() <= ggWalRebalanceThreshold) ++ if (part.state() != GridDhtPartitionState.OWNING || part.dataStore().fullSize() <= walRebalanceThreshold) continue; - CheckpointEntry cpEntry = searchCheckpointEntry(cacheCtx, part.id(), null); + CheckpointEntry cpEntry = searchCheckpointEntry(grp.groupId(), part.id(), null); try { if (cpEntry != null && cctx.wal().reserve(cpEntry.cpMark)) {
