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

# Conflicts:
#       
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
#       
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxLocal.java
#       
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/NearTxFinishFuture.java
#       
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteInternalTx.java
#       
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxAdapter.java


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

Branch: refs/heads/ignite-3478
Commit: 3ad260d24575321650570c7e8136b69c5d5bf02f
Parents: f6b0148 1f2f872
Author: sboikov <[email protected]>
Authored: Fri Sep 22 14:17:35 2017 +0300
Committer: sboikov <[email protected]>
Committed: Fri Sep 22 14:17:35 2017 +0300

----------------------------------------------------------------------
 README.md                                       | 149 +++--
 .../jdbc/suite/IgniteJdbcDriverTestSuite.java   |   3 +
 .../jdbc/thin/JdbcThinErrorsSelfTest.java       |  31 +
 .../thin/JdbcThinSelectAfterAlterTable.java     | 173 +++++
 .../apache/ignite/IgniteSystemProperties.java   |  10 +
 .../PersistentStoreConfiguration.java           |  34 +-
 .../internal/GridEventConsumeHandler.java       |   9 +-
 .../IgniteDiagnosticPrepareContext.java         |   4 +-
 .../internal/jdbc/thin/JdbcThinStatement.java   |   7 +-
 .../managers/deployment/GridDeploymentInfo.java |   1 +
 .../deployment/GridDeploymentInfoBean.java      |  21 +-
 .../discovery/GridDiscoveryManager.java         |  26 +-
 .../pagemem/store/IgnitePageStoreManager.java   |   4 +-
 .../cache/CacheAffinitySharedManager.java       |   4 +-
 .../processors/cache/CacheMetricsImpl.java      |   2 +-
 .../processors/cache/GridCacheAdapter.java      |  18 +-
 .../cache/GridCacheDeploymentManager.java       |  54 +-
 .../processors/cache/GridCacheIoManager.java    |   9 +-
 .../processors/cache/GridCacheMapEntry.java     |   9 +-
 .../processors/cache/GridCacheMvccManager.java  |   5 +-
 .../GridDistributedTxRemoteAdapter.java         |   2 +-
 .../dht/GridDhtPartitionTopologyImpl.java       |  13 +-
 .../distributed/dht/GridDhtTxFinishFuture.java  |   2 +-
 .../cache/distributed/dht/GridDhtTxLocal.java   |   6 +-
 .../distributed/dht/GridDhtTxLocalAdapter.java  |   4 +-
 .../colocated/GridDhtColocatedLockFuture.java   |  79 ++-
 .../GridDhtPartitionsExchangeFuture.java        |   2 +-
 .../preloader/GridDhtPartitionsFullMessage.java |   2 +-
 .../distributed/near/GridNearLockFuture.java    | 116 ++--
 .../near/GridNearOptimisticTxPrepareFuture.java |   3 +-
 .../near/GridNearTransactionalCache.java        |   3 -
 .../near/GridNearTxFastFinishFuture.java        |  82 +++
 .../near/GridNearTxFinishFuture.java            |  27 +-
 .../cache/distributed/near/GridNearTxLocal.java | 309 ++++++---
 .../distributed/near/NearTxFinishFuture.java    |   5 +
 .../GridCacheDatabaseSharedManager.java         |  55 +-
 .../persistence/GridCacheOffheapManager.java    |   2 +-
 .../IgniteCacheDatabaseSharedManager.java       |   2 +-
 .../cache/persistence/file/AsyncFileIO.java     | 218 ++++++
 .../persistence/file/AsyncFileIOFactory.java    |  52 ++
 .../cache/persistence/file/FileIOFactory.java   |  25 +-
 .../cache/persistence/file/FilePageStore.java   |   7 +-
 .../persistence/file/FilePageStoreManager.java  |   7 +-
 .../file/FileVersionCheckingFactory.java        |   2 +-
 .../persistence/file/RandomAccessFileIO.java    |  48 +-
 .../file/RandomAccessFileIOFactory.java         |  14 +-
 .../persistence/pagemem/PageMemoryImpl.java     |  96 ++-
 .../persistence/pagemem/PagesWriteThrottle.java | 104 +++
 .../cache/persistence/tree/io/DataPageIO.java   |   6 +-
 .../cache/persistence/tree/io/IOVersions.java   |   3 +
 .../cache/persistence/tree/io/PageIO.java       |   2 +-
 .../wal/AbstractWalRecordsIterator.java         |   2 +-
 .../cache/persistence/wal/FileInput.java        |   7 +
 .../wal/FileWriteAheadLogManager.java           |   8 +-
 .../reader/StandaloneWalRecordsIterator.java    |   4 +-
 .../continuous/CacheContinuousQueryHandler.java |   9 +-
 .../cache/transactions/IgniteInternalTx.java    |   2 +-
 .../cache/transactions/IgniteTxAdapter.java     |  13 +-
 .../cache/transactions/IgniteTxHandler.java     |  26 +-
 .../transactions/IgniteTxLocalAdapter.java      |  10 +-
 .../cache/transactions/IgniteTxLocalEx.java     |   7 +-
 .../cache/transactions/IgniteTxManager.java     |  80 +--
 .../odbc/odbc/OdbcConnectionContext.java        |   6 +-
 .../processors/odbc/odbc/OdbcMessageParser.java |  17 +-
 .../odbc/odbc/OdbcQueryExecuteBatchResult.java  |  16 +-
 .../odbc/odbc/OdbcRequestHandler.java           |  54 +-
 .../processors/odbc/odbc/OdbcUtils.java         |  24 +-
 .../processors/query/GridQueryProcessor.java    |  30 +-
 .../timeout/GridTimeoutProcessor.java           |  23 +-
 .../internal/util/future/GridFutureAdapter.java |  16 +
 .../ignite/spi/discovery/tcp/ServerImpl.java    |   3 +-
 .../tcp/internal/TcpDiscoveryNode.java          |   4 +-
 .../resources/META-INF/classnames.properties    |   2 +
 .../processors/cache/CacheTxFastFinishTest.java |   9 +-
 .../cache/IgniteTxConfigCacheSelfTest.java      |  14 +
 .../IgniteCacheThreadLocalTxTest.java           | 223 +++++++
 .../IgniteOptimisticTxSuspendResumeTest.java    |   6 +-
 ...ionedMultiNodeLongTxTimeout2FullApiTest.java |  34 +
 .../IgnitePdsContinuousRestartTest.java         |  45 +-
 ...ousRestartTestWithSharedGroupAndIndexes.java |  67 ++
 ...ckpointSimulationWithRealCpDisabledTest.java |   4 +-
 .../file/IgnitePdsThreadInterruptionTest.java   | 205 ++++++
 .../db/wal/IgniteWalFlushFailoverTest.java      |  22 +-
 .../db/wal/crc/IgniteDataIntegrityTests.java    |  39 +-
 .../pagemem/BPlusTreePageMemoryImplTest.java    |   4 +-
 .../BPlusTreeReuseListPageMemoryImplTest.java   |   3 +-
 .../MetadataStoragePageMemoryImplTest.java      |   4 +-
 .../pagemem/NoOpPageStoreManager.java           |   2 +-
 .../pagemem/PageMemoryImplNoLoadTest.java       |   4 +-
 .../persistence/pagemem/PageMemoryImplTest.java |   4 +-
 .../pagemem/PagesWriteThrottleSandboxTest.java  | 264 ++++++++
 .../pagemem/PagesWriteThrottleSmokeTest.java    | 327 +++++++++
 .../TxRollbackOnTimeoutNearCacheTest.java       |  28 +
 ...ollbackOnTimeoutNoDeadlockDetectionTest.java |  47 ++
 .../transactions/TxRollbackOnTimeoutTest.java   | 655 +++++++++++++++++++
 .../IgniteCacheFullApiSelfTestSuite.java        |   2 +
 .../testsuites/IgniteCacheTestSuite6.java       |  10 +
 .../ignite/testsuites/IgnitePdsTestSuite.java   |   4 +
 .../ignite/testsuites/IgnitePdsTestSuite2.java  |   3 +
 .../development/utils/IgniteWalConverter.java   |   1 -
 .../hadoop/impl/HadoopTxConfigCacheTest.java    |   4 +-
 .../processors/query/h2/IgniteH2Indexing.java   |   9 +
 .../processors/query/h2/opt/GridH2Table.java    |   2 +
 .../IgnitePersistentStoreSchemaLoadTest.java    | 237 ++++---
 .../IgnitePdsWithIndexingCoreTestSuite.java     |   2 +
 modules/platforms/cpp/README.md                 | 222 +++++++
 modules/platforms/cpp/odbc-test/Makefile.am     |   1 +
 .../cpp/odbc-test/project/vs/odbc-test.vcxproj  |   1 +
 .../project/vs/odbc-test.vcxproj.filters        |   3 +
 .../platforms/cpp/odbc-test/src/errors_test.cpp | 289 ++++++++
 .../platforms/cpp/odbc-test/src/parser_test.cpp |   4 +-
 .../cpp/odbc-test/src/queries_test.cpp          |  16 +-
 modules/platforms/cpp/odbc/include/Makefile.am  |   1 +
 .../cpp/odbc/include/ignite/odbc/common_types.h | 131 +++-
 .../ignite/odbc/diagnostic/diagnosable.h        |   9 +
 .../odbc/diagnostic/diagnosable_adapter.h       |   8 +
 .../cpp/odbc/include/ignite/odbc/message.h      |  48 +-
 .../cpp/odbc/include/ignite/odbc/odbc_error.h   |  94 +++
 .../cpp/odbc/include/ignite/odbc/parser.h       |  35 +-
 .../platforms/cpp/odbc/project/vs/odbc.vcxproj  |   1 +
 .../cpp/odbc/project/vs/odbc.vcxproj.filters    |   3 +
 modules/platforms/cpp/odbc/src/common_types.cpp |  51 ++
 modules/platforms/cpp/odbc/src/connection.cpp   |  25 +-
 .../odbc/src/diagnostic/diagnosable_adapter.cpp |   8 +
 .../odbc/src/diagnostic/diagnostic_record.cpp   | 105 ++-
 modules/platforms/cpp/odbc/src/message.cpp      |  37 +-
 .../cpp/odbc/src/query/batch_query.cpp          |  13 +-
 .../odbc/src/query/column_metadata_query.cpp    |  11 +-
 .../platforms/cpp/odbc/src/query/data_query.cpp |  31 +-
 .../cpp/odbc/src/query/table_metadata_query.cpp |  11 +-
 modules/platforms/cpp/odbc/src/statement.cpp    |  11 +-
 .../Examples/Example.cs                         |   6 +
 modules/platforms/dotnet/README.md              | 237 +++++--
 .../Datagrid/EntryProcessorExample.cs           |   4 +
 .../app/modules/agent/AgentManager.service.js   |   8 +-
 .../ignite/console/demo/AgentMetadataDemo.java  |   7 +
 136 files changed, 5152 insertions(+), 797 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/3ad260d2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheAdapter.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/3ad260d2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/3ad260d2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/GridDistributedTxRemoteAdapter.java
----------------------------------------------------------------------

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

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

http://git-wip-us.apache.org/repos/asf/ignite/blob/3ad260d2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
----------------------------------------------------------------------
diff --cc 
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
index b2f2774,9c7451e..03b7b6e
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
@@@ -1415,11 -1415,9 +1415,11 @@@ public class GridDhtPartitionsExchangeF
  
                  cacheCtx.continuousQueries().flushBackupQueue(res);
              }
-        }
+         }
  
          if (err == null) {
 +            
cctx.coordinators().assignCoordinator(exchCtx.events().discoveryCache());
 +
              if (centralizedAff) {
                  assert !exchCtx.mergeExchanges();
  

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

http://git-wip-us.apache.org/repos/asf/ignite/blob/3ad260d2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
----------------------------------------------------------------------
diff --cc 
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
index b1748b8,b6a8855..92f6b86
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/GridNearTxFinishFuture.java
@@@ -136,13 -135,11 +136,18 @@@ public final class GridNearTxFinishFutu
          }
      }
  
+     /** {@inheritDoc} */
+     @Override public boolean commit() {
+         return commit;
+     }
+ 
 +    /**
 +     * @return Cache context.
 +     */
 +    GridCacheSharedContext<K, V> context() {
 +        return cctx;
 +    }
 +
      /** {@inheritDoc} */
      @Override public IgniteUuid futureId() {
          return futId;
@@@ -390,9 -394,14 +402,15 @@@
              fut.getClass() == CheckRemoteTxMiniFuture.class;
      }
  
+     /**
+      * Initializes future.
+      *
+      * @param commit Commit flag.
+      * @param clearThreadMap If {@code true} removes {@link GridNearTxLocal} 
from thread map.
+      */
      @SuppressWarnings("ForLoopReplaceableByForEach")
 +    /** {@inheritDoc} */
-     public void finish(boolean commit) {
+     public void finish(boolean commit, boolean clearThreadMap) {
          if (tx.onNeedCheckBackup()) {
              assert tx.onePhaseCommit();
  
@@@ -405,28 -414,8 +423,27 @@@
              return;
          }
  
 +        if (!commit && tx.mvccCoordinatorVersion() != null) {
 +            ClusterNode crd = 
cctx.coordinators().coordinator(tx.topologyVersion());
 +
 +            assert crd != null;
 +
 +            cctx.coordinators().ackTxRollback(crd, tx.nearXidVersion());
 +        }
 +
          try {
-             if (tx.localFinish(commit) || (!commit && tx.state() == UNKNOWN)) 
{
+             if (tx.localFinish(commit, clearThreadMap) || (!commit && 
tx.state() == UNKNOWN)) {
 +                GridLongList waitTxs = tx.mvccWaitTransactions();
 +
 +                if (waitTxs != null) {
 +                    ClusterNode crd = 
cctx.coordinators().coordinator(tx.topologyVersion());
 +
 +                    assert crd != null;
 +
 +                    IgniteInternalFuture fut = 
cctx.coordinators().waitTxsFuture(crd, waitTxs);
 +
 +                    add(fut);
 +                }
- 
                  if ((tx.onePhaseCommit() && needFinishOnePhase(commit)) || 
(!tx.onePhaseCommit() && mappings != null)) {
                      if (mappings.single()) {
                          GridDistributedTxMapping mapping = 
mappings.singleMapping();

http://git-wip-us.apache.org/repos/asf/ignite/blob/3ad260d2/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/3ad260d2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/NearTxFinishFuture.java
----------------------------------------------------------------------
diff --cc 
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/NearTxFinishFuture.java
index 94224ca,132c754..9223c9f
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/NearTxFinishFuture.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/near/NearTxFinishFuture.java
@@@ -23,9 -23,9 +23,14 @@@ import org.apache.ignite.internal.proce
  /**
   *
   */
 -public interface NearTxFinishFuture extends 
IgniteInternalFuture<IgniteInternalTx> {
 +public interface NearTxFinishFuture extends 
IgniteInternalFuture<IgniteInternalTx>  {
      /**
+      * @return Commit flag.
+      */
+     boolean commit();
++
++    /**
 +     * @param commit {@code True} to commit, otherwise rollback.
 +     */
 +    public void finish(boolean commit);
  }

http://git-wip-us.apache.org/repos/asf/ignite/blob/3ad260d2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheOffheapManager.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/3ad260d2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/tree/io/PageIO.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/3ad260d2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteInternalTx.java
----------------------------------------------------------------------
diff --cc 
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteInternalTx.java
index 6445304,9e06d9d..091ecc5
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteInternalTx.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteInternalTx.java
@@@ -635,9 -634,4 +635,9 @@@ public interface IgniteInternalTx 
       * @param e Commit error.
       */
      public void commitError(Throwable e);
 +
 +    /**
 +     * @param mvccVer Version.
 +     */
 +    public void mvccCoordinatorVersion(MvccCoordinatorVersion mvccVer);
- }
+ }

http://git-wip-us.apache.org/repos/asf/ignite/blob/3ad260d2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxAdapter.java
----------------------------------------------------------------------
diff --cc 
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxAdapter.java
index fd36fca,b5178b5..ee7dfd2
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxAdapter.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxAdapter.java
@@@ -374,15 -370,13 +374,22 @@@ public abstract class IgniteTxAdapter e
          consistentIdMapper = new ConsistentIdMapper(cctx.discovery());
      }
  
 +    public MvccCoordinatorVersion mvccCoordinatorVersion() {
 +        return mvccVer;
 +    }
 +
 +    /** {@inheritDoc} */
 +    @Override public void mvccCoordinatorVersion(MvccCoordinatorVersion 
mvccVer) {
 +        this.mvccVer = mvccVer;
 +    }
 +
+     /**
+      * @return Shared cache context.
+      */
+     public GridCacheSharedContext<?, ?> context() {
+         return cctx;
+     }
+ 
      /** {@inheritDoc} */
      @Override public boolean localResult() {
          assert originatingNodeId() != null;

http://git-wip-us.apache.org/repos/asf/ignite/blob/3ad260d2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/3ad260d2/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxLocalAdapter.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/3ad260d2/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/BPlusTreePageMemoryImplTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/3ad260d2/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/BPlusTreeReuseListPageMemoryImplTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/3ad260d2/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/MetadataStoragePageMemoryImplTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/3ad260d2/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/PageMemoryImplNoLoadTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/3ad260d2/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/PageMemoryImplTest.java
----------------------------------------------------------------------

Reply via email to