You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by nt...@apache.org on 2017/04/14 06:52:14 UTC

[5/6] ignite git commit: Merge branch 'ignite-1.9.1-p1'

Merge branch 'ignite-1.9.1-p1'

# Conflicts:
#	modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java


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

Branch: refs/heads/master
Commit: 3f541676e208b3bfaf13346a60e8508c68767772
Parents: 922b258 6d12bd4
Author: dkarachentsev <dk...@gridgain.com>
Authored: Fri Apr 14 09:45:14 2017 +0300
Committer: dkarachentsev <dk...@gridgain.com>
Committed: Fri Apr 14 09:45:14 2017 +0300

----------------------------------------------------------------------
 assembly/release-fabric-base.xml                |   6 +
 .../binary/builder/BinaryBuilderReader.java     |   8 +
 .../managers/communication/GridIoManager.java   |  12 +-
 .../dht/atomic/GridDhtAtomicCache.java          |  25 ++-
 .../util/nio/GridNioBackPressureControl.java    |  39 ++++-
 .../util/nio/GridNioMessageTracker.java         |   7 +
 .../mutabletest/GridBinaryTestClasses.java      |   9 +
 .../CacheAtomicPrimarySyncBackPressureTest.java | 167 +++++++++++++++++++
 .../testsuites/IgniteCacheTestSuite4.java       |   3 +
 9 files changed, 262 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/3f541676/assembly/release-fabric-base.xml
----------------------------------------------------------------------
diff --cc assembly/release-fabric-base.xml
index c3bad39,97222c9..b374ab4
--- a/assembly/release-fabric-base.xml
+++ b/assembly/release-fabric-base.xml
@@@ -172,16 -178,10 +172,22 @@@
              <directory>modules/clients/target/cppdoc/html</directory>
              <outputDirectory>/platforms/cpp/docs</outputDirectory>
          </fileSet>
 +		
 +        <!-- Move CPP binaries. -->
 +        <fileSet>
 +            <directory>modules/platforms/cpp/bin</directory>
 +            <outputDirectory>/platforms/cpp/bin</outputDirectory>
 +        </fileSet>
 +
 +        <!-- Move CPP binaries. -->
 +        <fileSet>
 +            <directory>modules/platforms/cpp/bin</directory>
++            <outputDirectory>/platforms/cpp/bin</outputDirectory>
++        </fileSet>
+ 
+         <!-- Move CPP binaries. -->
+         <fileSet>
+             <directory>modules/platforms/cpp/bin</directory>
              <outputDirectory>/platforms/cpp/bin</outputDirectory>
          </fileSet>
  

http://git-wip-us.apache.org/repos/asf/ignite/blob/3f541676/modules/core/src/main/java/org/apache/ignite/internal/binary/builder/BinaryBuilderReader.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/3f541676/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/3f541676/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
index 6bcd6c2,da16e74..2810327
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/atomic/GridDhtAtomicCache.java
@@@ -99,15 -100,20 +101,18 @@@ import org.apache.ignite.internal.util.
  import org.apache.ignite.internal.util.typedef.internal.U;
  import org.apache.ignite.lang.IgniteBiTuple;
  import org.apache.ignite.lang.IgniteClosure;
+ import org.apache.ignite.lang.IgniteInClosure;
  import org.apache.ignite.lang.IgniteOutClosure;
+ import org.apache.ignite.lang.IgniteRunnable;
 +import org.apache.ignite.lang.IgniteUuid;
  import org.apache.ignite.plugin.security.SecurityPermission;
  import org.apache.ignite.transactions.TransactionIsolation;
  import org.jetbrains.annotations.Nullable;
  
  import static org.apache.ignite.IgniteSystemProperties.IGNITE_ATOMIC_DEFERRED_ACK_BUFFER_SIZE;
  import static org.apache.ignite.IgniteSystemProperties.IGNITE_ATOMIC_DEFERRED_ACK_TIMEOUT;
 -import static org.apache.ignite.cache.CacheAtomicWriteOrderMode.CLOCK;
  import static org.apache.ignite.cache.CacheWriteSynchronizationMode.FULL_ASYNC;
 -import static org.apache.ignite.cache.CacheWriteSynchronizationMode.FULL_SYNC;
+ import static org.apache.ignite.cache.CacheWriteSynchronizationMode.PRIMARY_SYNC;
  import static org.apache.ignite.internal.processors.cache.GridCacheOperation.DELETE;
  import static org.apache.ignite.internal.processors.cache.GridCacheOperation.TRANSFORM;
  import static org.apache.ignite.internal.processors.cache.GridCacheOperation.UPDATE;
@@@ -1870,15 -1905,33 +1875,33 @@@ public class GridDhtAtomicCache<K, V> e
  
                          res.returnValue(retVal);
  
-                         if (dhtFut != null)
 -                        if (req.writeSynchronizationMode() != FULL_ASYNC)
 -                            req.cleanup(!node.isLocal());
 -
+                         if (dhtFut != null) {
+                             if (req.writeSynchronizationMode() == PRIMARY_SYNC
+                                 // To avoid deadlock disable back-pressure for sender data node.
+                                 && !ctx.discovery().cacheAffinityNode(ctx.discovery().node(nodeId), ctx.name())
+                                 && !dhtFut.isDone()) {
+                                 final IgniteRunnable tracker = GridNioBackPressureControl.threadTracker();
+ 
+                                 if (tracker != null && tracker instanceof GridNioMessageTracker) {
+                                     ((GridNioMessageTracker)tracker).onMessageReceived();
+ 
+                                     dhtFut.listen(new IgniteInClosure<IgniteInternalFuture<Void>>() {
+                                         @Override public void apply(IgniteInternalFuture<Void> fut) {
+                                             ((GridNioMessageTracker)tracker).onMessageProcessed();
+                                         }
+                                     });
+                                 }
+                             }
+ 
 -                            ctx.mvcc().addAtomicFuture(dhtFut.version(), dhtFut);
 +                            ctx.mvcc().addAtomicFuture(dhtFut.id(), dhtFut);
+                         }
                      }
 -                    else
 +                    else {
                          // Should remap all keys.
                          remap = true;
 +
 +                        res.remapTopologyVersion(top.topologyVersion());
 +                    }
                  }
                  finally {
                      top.readUnlock();

http://git-wip-us.apache.org/repos/asf/ignite/blob/3f541676/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite4.java
----------------------------------------------------------------------