Merge remote-tracking branch 'remotes/community/gridgain-7.6.2' # Conflicts: # modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheIoManager.java # modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryResponse.java # modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxFinishRequest.java # modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareResponse.java # modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/6611d0c2 Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/6611d0c2 Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/6611d0c2 Branch: refs/heads/ignite-1232 Commit: 6611d0c2ccb9ea81fe5306d8c4e0a2881410eeda Parents: c44ee63 ad76dda Author: sboikov <[email protected]> Authored: Wed Jul 6 11:30:54 2016 +0300 Committer: sboikov <[email protected]> Committed: Wed Jul 6 11:30:54 2016 +0300 ---------------------------------------------------------------------- .../apache/ignite/IgniteSystemProperties.java | 3 + .../apache/ignite/internal/IgniteKernal.java | 21 ++ .../ignite/internal/binary/BinaryContext.java | 85 ++++-- .../internal/binary/BinaryEnumObjectImpl.java | 9 +- .../ignite/internal/binary/BinaryObjectEx.java | 11 + .../internal/binary/BinaryObjectExImpl.java | 4 +- .../internal/binary/BinaryObjectImpl.java | 8 +- .../binary/BinaryObjectOffheapImpl.java | 8 +- .../ignite/internal/binary/BinaryTypeProxy.java | 111 +++++++ .../ignite/internal/binary/BinaryUtils.java | 35 ++- .../processors/cache/GridCacheAdapter.java | 4 + .../processors/cache/GridCacheIoManager.java | 150 +++++++++- .../processors/cache/GridCacheMessage.java | 9 + .../GridCachePartitionExchangeManager.java | 103 +++++++ .../cache/GridCacheSharedContext.java | 68 +++++ .../processors/cache/GridCacheUtils.java | 21 ++ .../binary/CacheObjectBinaryProcessorImpl.java | 3 +- .../distributed/GridCacheTxRecoveryFuture.java | 70 ++++- .../distributed/GridCacheTxRecoveryRequest.java | 8 + .../GridCacheTxRecoveryResponse.java | 8 + .../distributed/GridDistributedLockRequest.java | 6 + .../GridDistributedLockResponse.java | 6 + .../GridDistributedTxFinishRequest.java | 7 + .../GridDistributedTxFinishResponse.java | 8 + .../GridDistributedTxPrepareRequest.java | 6 + .../GridDistributedTxPrepareResponse.java | 7 + .../GridDistributedUnlockRequest.java | 6 + .../distributed/dht/GridDhtLockFuture.java | 59 ++-- .../dht/GridDhtTransactionalCacheAdapter.java | 77 ++++- .../distributed/dht/GridDhtTxFinishFuture.java | 92 +++++- .../cache/distributed/dht/GridDhtTxLocal.java | 27 +- .../distributed/dht/GridDhtTxPrepareFuture.java | 122 +++++++- .../dht/atomic/GridDhtAtomicCache.java | 138 ++++++--- .../GridDhtAtomicDeferredUpdateResponse.java | 7 + .../dht/atomic/GridDhtAtomicUpdateFuture.java | 47 ++- .../dht/atomic/GridDhtAtomicUpdateRequest.java | 6 + .../dht/atomic/GridDhtAtomicUpdateResponse.java | 6 + .../GridNearAtomicAbstractUpdateFuture.java | 7 +- .../GridNearAtomicSingleUpdateFuture.java | 30 +- .../dht/atomic/GridNearAtomicUpdateFuture.java | 45 ++- .../dht/atomic/GridNearAtomicUpdateRequest.java | 6 + .../atomic/GridNearAtomicUpdateResponse.java | 6 + .../dht/colocated/GridDhtColocatedCache.java | 10 + .../colocated/GridDhtColocatedLockFuture.java | 71 +++-- .../GridDhtPartitionsExchangeFuture.java | 3 + .../near/GridNearOptimisticTxPrepareFuture.java | 33 +++ .../GridNearPessimisticTxPrepareFuture.java | 34 ++- .../near/GridNearTxFinishFuture.java | 91 +++++- .../near/GridNearTxPrepareFutureAdapter.java | 7 +- .../cache/transactions/IgniteTxHandler.java | 286 ++++++++++++++----- .../processors/query/GridQueryProcessor.java | 3 +- .../util/nio/GridNioRecoveryDescriptor.java | 19 +- .../ignite/internal/util/nio/GridNioServer.java | 47 ++- .../util/nio/GridSelectorNioSessionImpl.java | 7 + .../communication/tcp/TcpCommunicationSpi.java | 163 +++++++---- .../ignite/spi/discovery/tcp/ClientImpl.java | 2 +- .../ignite/spi/discovery/tcp/ServerImpl.java | 109 ++++--- .../tcp/internal/TcpDiscoveryStatistics.java | 45 ++- modules/core/src/test/config/log4j-test.xml | 6 + ...gniteCacheMessageRecoveryIdleConnection.java | 154 ++++++++++ .../tcp/TcpDiscoveryMultiThreadedTest.java | 222 ++++++++++++++ .../spi/discovery/tcp/TcpDiscoverySelfTest.java | 63 +++- .../ignite/testsuites/IgniteCacheTestSuite.java | 2 + .../processors/hadoop/HadoopAttributes.java | 168 +++++++++++ .../processors/hadoop/HadoopClasspathUtils.java | 160 +++++++---- .../processors/hadoop/HadoopLocations.java | 79 +++-- .../processors/hadoop/HadoopProcessor.java | 61 ++-- 67 files changed, 2797 insertions(+), 508 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/6611d0c2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheIoManager.java ---------------------------------------------------------------------- diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheIoManager.java index ba7dabd,488a22c..8879651 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheIoManager.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheIoManager.java @@@ -58,8 -62,7 +62,9 @@@ import org.apache.ignite.internal.proce import org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxPrepareResponse; import org.apache.ignite.internal.processors.cache.query.GridCacheQueryRequest; import org.apache.ignite.internal.processors.cache.query.GridCacheQueryResponse; +import org.apache.ignite.internal.processors.cache.transactions.IgniteTxState; +import org.apache.ignite.internal.processors.cache.transactions.IgniteTxStateAware; + import org.apache.ignite.internal.processors.cache.version.GridCacheVersion; import org.apache.ignite.internal.util.F0; import org.apache.ignite.internal.util.GridLeanSet; import org.apache.ignite.internal.util.GridSpinReadWriteLock; http://git-wip-us.apache.org/repos/asf/ignite/blob/6611d0c2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryFuture.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/6611d0c2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryResponse.java ---------------------------------------------------------------------- diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryResponse.java index 527a89f,265d53b..dae19a3 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryResponse.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridCacheTxRecoveryResponse.java @@@ -19,9 -19,9 +19,12 @@@ package org.apache.ignite.internal.proc import java.io.Externalizable; import java.nio.ByteBuffer; +import org.apache.ignite.internal.GridDirectTransient; +import org.apache.ignite.internal.processors.cache.transactions.IgniteTxState; +import org.apache.ignite.internal.processors.cache.transactions.IgniteTxStateAware; + + import org.apache.ignite.IgniteLogger; + import org.apache.ignite.internal.processors.cache.GridCacheSharedContext; import org.apache.ignite.internal.processors.cache.version.GridCacheVersion; import org.apache.ignite.internal.util.typedef.internal.S; import org.apache.ignite.lang.IgniteUuid; @@@ -98,16 -95,11 +101,21 @@@ public class GridCacheTxRecoveryRespons } /** {@inheritDoc} */ + @Override public IgniteTxState txState() { + return txState; + } + + /** {@inheritDoc} */ + @Override public void txState(IgniteTxState txState) { + this.txState = txState; + } + + /** {@inheritDoc} */ + @Override public IgniteLogger messageLogger(GridCacheSharedContext ctx) { + return ctx.txRecoveryMessageLogger(); + } + + /** {@inheritDoc} */ @Override public boolean writeTo(ByteBuffer buf, MessageWriter writer) { writer.setBuffer(buf); http://git-wip-us.apache.org/repos/asf/ignite/blob/6611d0c2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxFinishRequest.java ---------------------------------------------------------------------- diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxFinishRequest.java index b5f34dd,7254ec7..3e47cc9 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxFinishRequest.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxFinishRequest.java @@@ -20,9 -20,8 +20,11 @@@ package org.apache.ignite.internal.proc import java.io.Externalizable; import java.nio.ByteBuffer; import java.util.Collection; +import org.apache.ignite.internal.GridDirectTransient; +import org.apache.ignite.internal.processors.cache.transactions.IgniteTxState; +import org.apache.ignite.internal.processors.cache.transactions.IgniteTxStateAware; + import org.apache.ignite.IgniteLogger; + import org.apache.ignite.internal.processors.cache.GridCacheSharedContext; import org.apache.ignite.internal.processors.cache.version.GridCacheVersion; import org.apache.ignite.internal.util.tostring.GridToStringBuilder; import org.apache.ignite.lang.IgniteUuid; @@@ -229,16 -224,11 +231,21 @@@ public class GridDistributedTxFinishReq } /** {@inheritDoc} */ + @Override public IgniteTxState txState() { + return txState; + } + + /** {@inheritDoc} */ + @Override public void txState(IgniteTxState txState) { + this.txState = txState; + } + + /** {@inheritDoc} */ + @Override public IgniteLogger messageLogger(GridCacheSharedContext ctx) { + return ctx.txFinishMessageLogger(); + } + + /** {@inheritDoc} */ @Override public boolean writeTo(ByteBuffer buf, MessageWriter writer) { writer.setBuffer(buf); http://git-wip-us.apache.org/repos/asf/ignite/blob/6611d0c2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareRequest.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/6611d0c2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareResponse.java ---------------------------------------------------------------------- diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareResponse.java index 53f6659,850c095..9f34cd2 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareResponse.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxPrepareResponse.java @@@ -20,10 -20,9 +20,11 @@@ package org.apache.ignite.internal.proc import java.io.Externalizable; import java.nio.ByteBuffer; import org.apache.ignite.IgniteCheckedException; + import org.apache.ignite.IgniteLogger; import org.apache.ignite.internal.GridDirectTransient; import org.apache.ignite.internal.processors.cache.GridCacheSharedContext; +import org.apache.ignite.internal.processors.cache.transactions.IgniteTxState; +import org.apache.ignite.internal.processors.cache.transactions.IgniteTxStateAware; import org.apache.ignite.internal.processors.cache.version.GridCacheVersion; import org.apache.ignite.internal.util.tostring.GridToStringBuilder; import org.apache.ignite.internal.util.tostring.GridToStringExclude; @@@ -96,17 -91,11 +97,23 @@@ public class GridDistributedTxPrepareRe } /** {@inheritDoc} */ + @Override public IgniteTxState txState() { + return txState; + } + + /** {@inheritDoc} */ + @Override public void txState(IgniteTxState txState) { + this.txState = txState; + } + + /** {@inheritDoc} + * @param ctx*/ ++ /** {@inheritDoc} */ + @Override public IgniteLogger messageLogger(GridCacheSharedContext ctx) { + return ctx.txPrepareMessageLogger(); + } + + /** {@inheritDoc} */ @Override public void prepareMarshal(GridCacheSharedContext ctx) throws IgniteCheckedException { super.prepareMarshal(ctx); http://git-wip-us.apache.org/repos/asf/ignite/blob/6611d0c2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxPrepareFutureAdapter.java ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/6611d0c2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java ---------------------------------------------------------------------- diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java index f70f8e8,ba30e10..b5391a9 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java @@@ -105,12 -114,12 +114,17 @@@ public class IgniteTxHandler */ public IgniteInternalFuture<?> processNearTxPrepareRequest(final UUID nearNodeId, final GridNearTxPrepareRequest req) { + if (txPrepareMsgLog.isDebugEnabled()) { + txPrepareMsgLog.debug("Received near prepare request [txId=" + req.version() + + ", node=" + nearNodeId + ']'); + } + - return prepareTx(nearNodeId, null, req); + IgniteInternalFuture<GridNearTxPrepareResponse> fut = prepareTx(nearNodeId, null, req); + + assert req.txState() != null || fut.error() != null || + (ctx.tm().tx(req.version()) == null && ctx.tm().nearTx(req.version()) == null); + + return fut; } /** @@@ -556,13 -585,9 +603,15 @@@ return; } + else if (txPrepareMsgLog.isDebugEnabled()) + txPrepareMsgLog.debug("Received dht prepare response [txId=" + fut.tx().nearXidVersion() + ", node=" + nodeId + ']'); + IgniteInternalTx tx = fut.tx(); + + assert tx != null; + + res.txState(tx.txState()); + fut.onResult(nodeId, res); } @@@ -607,12 -651,10 +675,15 @@@ */ @Nullable public IgniteInternalFuture<IgniteInternalTx> processNearTxFinishRequest(UUID nodeId, GridNearTxFinishRequest req) { + if (txFinishMsgLog.isDebugEnabled()) + txFinishMsgLog.debug("Received near finish request [txId=" + req.version() + ", node=" + nodeId + ']'); + - return finish(nodeId, null, req); + IgniteInternalFuture<IgniteInternalTx> fut = finish(nodeId, null, req); + + assert req.txState() != null || fut.error() != null || + (ctx.tm().tx(req.version()) == null && ctx.tm().nearTx(req.version()) == null); + + return fut; } /** @@@ -996,12 -1060,10 +1103,12 @@@ }); } else - sendReply(nodeId, req, true); + sendReply(nodeId, req, true, nearTxId); } else - sendReply(nodeId, req, true); + sendReply(nodeId, req, true, null); + + assert req.txState() != null || (ctx.tm().tx(req.version()) == null && ctx.tm().nearTx(req.version()) == null); } /**
