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)) {

Reply via email to