Merge remote-tracking branch 'remotes/origin/master' into ignite-3478

# Conflicts:
#       
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
#       
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtCacheAdapter.java
#       
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtGetFuture.java
#       
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtGetSingleFuture.java
#       
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridPartitionedGetFuture.java


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/9f0572bb
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/9f0572bb
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/9f0572bb

Branch: refs/heads/ignite-3478
Commit: 9f0572bb6569332e037622cc4c31b1d8268f581f
Parents: 7a4baba aefa9a8
Author: sboikov <[email protected]>
Authored: Tue Sep 26 12:42:46 2017 +0300
Committer: sboikov <[email protected]>
Committed: Tue Sep 26 12:42:46 2017 +0300

----------------------------------------------------------------------
 modules/compatibility/README.txt                |   5 +
 modules/compatibility/licenses/apache-2.0.txt   | 202 ++++++++
 modules/compatibility/pom.xml                   |  94 ++++
 .../ignite/compatibility/package-info.java      |  22 +
 .../DummyPersistenceCompatibilityTest.java      | 108 ++++
 ...itePersistenceCompatibilityAbstractTest.java |  89 ++++
 .../compatibility/persistence/package-info.java |  22 +
 .../junits/CompatibilityTestsFacade.java        |  46 ++
 .../junits/IgniteCompatibilityAbstractTest.java | 280 +++++++++++
 .../junits/IgniteCompatibilityNodeRunner.java   | 157 ++++++
 .../logger/ListenedGridTestLog4jLogger.java     |  91 ++++
 .../junits/logger/package-info.java             |  22 +
 .../testframework/junits/package-info.java      |  22 +
 .../testframework/package-info.java             |  22 +
 .../plugins/DisabledValidationProcessor.java    |  42 ++
 .../TestCompatibilityPluginProvider.java        | 119 +++++
 .../testframework/plugins/package-info.java     |  22 +
 .../testframework/util/MavenUtils.java          | 208 ++++++++
 .../testframework/util/package-info.java        |  22 +
 .../IgniteCompatibilityBasicTestSuite.java      |  38 ++
 .../compatibility/testsuites/package-info.java  |  22 +
 .../org.apache.ignite.plugin.PluginProvider     |   1 +
 .../configuration/IgniteConfiguration.java      |   6 +
 .../cache/GatewayProtectedCacheProxy.java       |   5 -
 .../processors/cache/GridCacheAdapter.java      | 135 +++--
 .../processors/cache/GridCacheProxyImpl.java    |  12 -
 .../processors/cache/IgniteCacheProxy.java      |   8 -
 .../processors/cache/IgniteCacheProxyImpl.java  |  16 -
 .../processors/cache/IgniteInternalCache.java   |   9 -
 .../dht/CacheDistributedGetFutureAdapter.java   |   5 +-
 .../distributed/dht/GridDhtCacheAdapter.java    |   5 -
 .../cache/distributed/dht/GridDhtGetFuture.java |   2 -
 .../distributed/dht/GridDhtGetSingleFuture.java |   6 +-
 .../dht/GridDhtPartitionTopologyImpl.java       | 495 ++++++++++---------
 .../dht/GridPartitionedGetFuture.java           |  22 +-
 .../dht/GridPartitionedSingleGetFuture.java     |   5 +-
 .../dht/atomic/GridDhtAtomicCache.java          |  67 +--
 .../dht/colocated/GridDhtColocatedCache.java    |  24 +-
 .../distributed/near/GridNearAtomicCache.java   |   2 -
 .../distributed/near/GridNearCacheAdapter.java  |   3 -
 .../distributed/near/GridNearCacheEntry.java    |   1 -
 .../distributed/near/GridNearGetFuture.java     |   3 -
 .../near/GridNearTransactionalCache.java        |   3 -
 .../cache/distributed/near/GridNearTxLocal.java |   2 -
 .../local/atomic/GridLocalAtomicCache.java      |   2 -
 .../GridCacheDatabaseSharedManager.java         |  10 +-
 .../wal/FileWriteAheadLogManager.java           |   4 +-
 .../utils/PlatformConfigurationUtils.java       |  10 +
 .../processors/query/GridQueryProcessor.java    |   2 +-
 .../ignite/internal/util/IgniteUtils.java       |   9 +
 .../org.apache.ignite.plugin.PluginProvider     |   2 +-
 .../IgniteCacheTopologySafeGetSelfTest.java     | 222 ---------
 .../local/GridCacheLocalFullApiSelfTest.java    |  76 ++-
 .../IgnitePdsExchangeDuringCheckpointTest.java  | 135 +++++
 .../file/IgnitePdsThreadInterruptionTest.java   |   2 +-
 .../persistence/db/wal/IgnitePdsWalTlbTest.java |   4 +-
 .../junits/multijvm/IgniteNodeRunner.java       |   2 +-
 .../junits/multijvm/IgniteProcessProxy.java     |  90 +++-
 .../IgniteCacheDataStructuresSelfTestSuite.java |   4 +-
 .../IgniteCacheFailoverTestSuite.java           |   2 -
 .../ignite/testsuites/IgnitePdsTestSuite2.java  |   4 +
 .../cache/hibernate/HibernateCacheProxy.java    |   5 -
 .../TestExtensions.cs                           |   2 +
 .../Apache.Ignite.Core.Tests.csproj             |   4 +
 .../Binary/BinaryDynamicRegistrationTest.cs     |  15 +-
 .../Cache/CacheConfigurationTest.cs             |  39 +-
 .../Cache/PersistentStoreTest.cs                |  47 +-
 .../Config/Dynamic/dynamic-data.xml             |   2 +
 .../Config/cache-default.xml                    |  56 +++
 .../IgniteConfigurationSerializerTest.cs        |  65 +--
 .../IgniteConfigurationTest.cs                  |  73 ++-
 .../Apache.Ignite.Core.Tests/TestUtils.cs       |  61 +++
 .../Cache/Configuration/CacheConfiguration.cs   |  14 +-
 .../Apache.Ignite.Core/IgniteConfiguration.cs   |  10 +
 .../IgniteConfigurationSection.xsd              |   5 +
 .../Common/IgniteConfigurationXmlSerializer.cs  |   4 +-
 pom.xml                                         |   8 +
 77 files changed, 2616 insertions(+), 866 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/9f0572bb/modules/core/src/main/java/org/apache/ignite/configuration/IgniteConfiguration.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/9f0572bb/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
----------------------------------------------------------------------
diff --cc 
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
index 437d9d7,6d9f0d3..400f36a
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
@@@ -1812,9 -1803,7 +1804,8 @@@ public abstract class GridCacheAdapter<
              skipVals,
              /*keep cache objects*/false,
              recovery,
-             canRemap,
 -            needVer);
 +            needVer,
 +            null); // TODO IGNITE-3478.
      }
  
      /**
@@@ -1844,9 -1832,7 +1834,8 @@@
          final boolean skipVals,
          final boolean keepCacheObjects,
          final boolean recovery,
-         boolean canRemap,
 -        final boolean needVer
 +        final boolean needVer,
 +        MvccCoordinatorVersion mvccVer
      ) {
          if (F.isEmpty(keys))
              return new GridFinishedFuture<>(Collections.<K1, V1>emptyMap());

http://git-wip-us.apache.org/repos/asf/ignite/blob/9f0572bb/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtCacheAdapter.java
----------------------------------------------------------------------
diff --cc 
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtCacheAdapter.java
index ac04e4b,bbb2c5b..ee42a14
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtCacheAdapter.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtCacheAdapter.java
@@@ -777,9 -771,7 +774,8 @@@ public abstract class GridDhtCacheAdapt
          String taskName,
          @Nullable IgniteCacheExpiryPolicy expiry,
          boolean skipVals,
-         boolean canRemap,
 -        boolean recovery
 +        boolean recovery,
 +        MvccCoordinatorVersion mvccVer
      ) {
          return getAllAsync0(keys,
              readerArgs,
@@@ -792,9 -784,7 +788,8 @@@
              skipVals,
              /*keep cache objects*/true,
              recovery,
-             canRemap,
 -            /*need version*/true);
 +            /*need version*/true,
 +            mvccVer);
      }
  
      /**

http://git-wip-us.apache.org/repos/asf/ignite/blob/9f0572bb/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtGetFuture.java
----------------------------------------------------------------------
diff --cc 
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtGetFuture.java
index 78a4057,4319374..0b1d76d
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtGetFuture.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridDhtGetFuture.java
@@@ -428,9 -422,7 +428,8 @@@ public final class GridDhtGetFuture<K, 
                  taskName,
                  expiryPlc,
                  skipVals,
-                 /*can remap*/true,
 -                recovery);
 +                recovery,
 +                mvccVer);
          }
          else {
              final ReaderArguments args = readerArgs;
@@@ -453,9 -445,7 +452,8 @@@
                              taskName,
                              expiryPlc,
                              skipVals,
-                             /*can remap*/true,
 -                            recovery);
 +                            recovery,
 +                            mvccVer);
                      }
                  }
              );

http://git-wip-us.apache.org/repos/asf/ignite/blob/9f0572bb/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 67e726e,7c6c020..9fb4b0a
--- 
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
@@@ -365,9 -365,7 +365,8 @@@ public final class GridDhtGetSingleFutu
                  taskName,
                  expiryPlc,
                  skipVals,
-                 /*can remap*/true,
 -                recovery);
 +                recovery,
-                 null); // TODO IGNITE-3478
++                null);  // TODO IGNITE-3478
          }
          else {
              final ReaderArguments args = readerArgs;
@@@ -392,9 -390,7 +391,8 @@@
                                  taskName,
                                  expiryPlc,
                                  skipVals,
-                                 /*can remap*/true,
 -                                recovery);
 +                                recovery,
-                                 null); // TODO IGNITE-3478
++                                null);  // TODO IGNITE-3478
  
                          fut0.listen(createGetFutureListener());
                      }

http://git-wip-us.apache.org/repos/asf/ignite/blob/9f0572bb/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridPartitionedGetFuture.java
----------------------------------------------------------------------
diff --cc 
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridPartitionedGetFuture.java
index 9b7d733,73c0ea5..cd8b8c8
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridPartitionedGetFuture.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridPartitionedGetFuture.java
@@@ -75,15 -73,6 +75,12 @@@ public class GridPartitionedGetFuture<K
      /** Logger. */
      private static IgniteLogger log;
  
-     /** Topology version. */
-     private AffinityTopologyVersion topVer;
- 
 +    /** */
 +    private ClusterNode mvccCrd;
 +
 +    /** */
 +    private MvccCoordinatorVersion mvccVer;
 +
      /**
       * @param cctx Context.
       * @param keys Keys.
@@@ -143,49 -128,17 +136,49 @@@
          AffinityTopologyVersion lockedTopVer = 
cctx.shared().lockedTopologyVersion(null);
  
          if (lockedTopVer != null) {
 -            canRemap = false;
 +            topVer = lockedTopVer;
  
 -            map(keys, Collections.<ClusterNode, LinkedHashMap<KeyCacheObject, 
Boolean>>emptyMap(), lockedTopVer);
 +            canRemap = false;
          }
          else {
-             topVer = this.topVer.topologyVersion() > 0 ? this.topVer :
+             topVer = topVer.topologyVersion() > 0 ? topVer :
                  canRemap ? cctx.affinity().affinityTopologyVersion() : 
cctx.shared().exchange().readyAffinityVersion();
 +        }
 +
 +        // TODO IGNITE-3478 (correct failover and remap).
 +        if (cctx.mvccEnabled()) {
 +            mvccCrd = cctx.shared().coordinators().coordinator(topVer);
 +
 +            if (mvccCrd == null) {
 +                onDone(new ClusterTopologyCheckedException("Mvcc coordinator 
is not assigned: " + topVer));
 +
 +                return;
 +            }
 +
 +            IgniteInternalFuture<MvccCoordinatorVersion> cntrFut = 
cctx.shared().coordinators().requestQueryCounter(mvccCrd);
  
 -            map(keys, Collections.<ClusterNode, LinkedHashMap<KeyCacheObject, 
Boolean>>emptyMap(), topVer);
 +            cntrFut.listen(new 
IgniteInClosure<IgniteInternalFuture<MvccCoordinatorVersion>>() {
 +                @Override public void 
apply(IgniteInternalFuture<MvccCoordinatorVersion> fut) {
 +                    try {
 +                        mvccVer = fut.get();
 +
 +                        map(keys,
 +                            Collections.<ClusterNode, 
LinkedHashMap<KeyCacheObject, Boolean>>emptyMap(),
 +                            GridPartitionedGetFuture.this.topVer);
 +
 +                        markInitialized();
 +                    }
 +                    catch (IgniteCheckedException e) {
 +                        onDone(e);
 +                    }
 +                }
 +            });
 +
 +            return;
          }
  
 +        map(keys, Collections.<ClusterNode, LinkedHashMap<KeyCacheObject, 
Boolean>>emptyMap(), topVer);
 +
          markInitialized();
      }
  

http://git-wip-us.apache.org/repos/asf/ignite/blob/9f0572bb/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/GridPartitionedSingleGetFuture.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/9f0572bb/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/9f0572bb/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/colocated/GridDhtColocatedCache.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/9f0572bb/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearGetFuture.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/9f0572bb/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/9f0572bb/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/local/atomic/GridLocalAtomicCache.java
----------------------------------------------------------------------

Reply via email to