You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by sb...@apache.org on 2017/05/11 10:19:23 UTC

[38/38] ignite git commit: Merge remote-tracking branch 'remotes/origin/ignite-5075-cacheStart' into ignite-5075

Merge remote-tracking branch 'remotes/origin/ignite-5075-cacheStart' into ignite-5075

# Conflicts:
#	modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheEntryInfo.java
#	modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionSupplyMessage.java
#	modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java


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

Branch: refs/heads/ignite-5075
Commit: 038c00f494f1230dd32ebbaf2cca2f26f5fecaa4
Parents: eeb215f b324c13
Author: sboikov <sb...@gridgain.com>
Authored: Thu May 11 13:18:23 2017 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Thu May 11 13:18:23 2017 +0300

----------------------------------------------------------------------
 .../store/cassandra/CassandraCacheStore.java    |  16 +-
 .../session/LoadCacheCustomQueryWorker.java     |  26 +-
 .../ignite/tests/IgnitePersistentStoreTest.java |  30 +-
 .../tests/persistence/blob/ignite-config.xml    |   4 +-
 .../tests/persistence/pojo/ignite-config.xml    |   4 +-
 .../persistence/primitive/ignite-config.xml     |   4 +-
 .../primitive/ignite-remote-server-config.xml   |   4 +-
 .../processors/rest/TestMemcacheClient.java     |   2 +-
 .../org/apache/ignite/IgniteJdbcDriver.java     |  69 +--
 .../apache/ignite/IgniteSystemProperties.java   |   3 +
 .../store/jdbc/CacheAbstractJdbcStore.java      |  71 ++-
 .../internal/jdbc/JdbcDriverPropertyInfo.java   |  37 ++
 .../affinity/GridAffinityProcessor.java         |   3 +-
 .../cache/CacheJoinNodeDiscoveryData.java       |  15 +-
 .../processors/cache/ClusterCachesInfo.java     |  34 +-
 .../processors/cache/GridCacheContext.java      |   7 +
 .../processors/cache/GridCacheProcessor.java    |  56 +-
 .../processors/cache/IgniteCacheProxy.java      |  41 +-
 .../cache/database/MemoryMetricsImpl.java       |   8 +-
 .../continuous/CacheContinuousQueryManager.java |   2 +-
 .../internal/processors/odbc/IgniteTypes.java   |  69 ---
 .../processors/odbc/OdbcBufferedParser.java     |  81 ---
 .../processors/odbc/OdbcColumnMeta.java         | 110 ----
 .../processors/odbc/OdbcHandshakeRequest.java   |  83 ---
 .../processors/odbc/OdbcHandshakeResult.java    |  73 ---
 .../processors/odbc/OdbcMessageParser.java      | 320 ----------
 .../processors/odbc/OdbcNioListener.java        | 153 +++--
 .../processors/odbc/OdbcNioServerBuffer.java    | 114 ----
 .../internal/processors/odbc/OdbcProcessor.java |   2 +-
 .../processors/odbc/OdbcProtocolVersion.java    | 125 ----
 .../processors/odbc/OdbcQueryCloseRequest.java  |  49 --
 .../processors/odbc/OdbcQueryCloseResult.java   |  40 --
 .../odbc/OdbcQueryExecuteRequest.java           |  78 ---
 .../processors/odbc/OdbcQueryExecuteResult.java |  54 --
 .../processors/odbc/OdbcQueryFetchRequest.java  |  61 --
 .../processors/odbc/OdbcQueryFetchResult.java   |  66 --
 .../odbc/OdbcQueryGetColumnsMetaRequest.java    |   4 +-
 .../odbc/OdbcQueryGetColumnsMetaResult.java     |   6 +-
 .../odbc/OdbcQueryGetParamsMetaRequest.java     |   4 +-
 .../odbc/OdbcQueryGetTablesMetaRequest.java     |   4 +-
 .../internal/processors/odbc/OdbcRequest.java   |  61 --
 .../processors/odbc/OdbcRequestHandler.java     | 532 -----------------
 .../internal/processors/odbc/OdbcResponse.java  |  96 ---
 .../internal/processors/odbc/OdbcUtils.java     |  30 +-
 .../odbc/SqlListenerBufferedParser.java         |  81 +++
 .../processors/odbc/SqlListenerColumnMeta.java  | 110 ++++
 .../odbc/SqlListenerConnectionContext.java      |  56 ++
 .../processors/odbc/SqlListenerDataTypes.java   |  69 +++
 .../odbc/SqlListenerMessageParser.java          |  39 ++
 .../odbc/SqlListenerNioServerBuffer.java        | 114 ++++
 .../odbc/SqlListenerProtocolVersion.java        | 116 ++++
 .../odbc/SqlListenerQueryCloseRequest.java      |  49 ++
 .../odbc/SqlListenerQueryCloseResult.java       |  40 ++
 .../odbc/SqlListenerQueryExecuteRequest.java    |  78 +++
 .../odbc/SqlListenerQueryExecuteResult.java     |  54 ++
 .../odbc/SqlListenerQueryFetchRequest.java      |  61 ++
 .../odbc/SqlListenerQueryFetchResult.java       |  66 ++
 .../processors/odbc/SqlListenerRequest.java     |  78 +++
 .../odbc/SqlListenerRequestHandler.java         |  31 +
 .../processors/odbc/SqlListenerResponse.java    |  96 +++
 .../odbc/escape/OdbcEscapeParseResult.java      |  73 ---
 .../processors/odbc/escape/OdbcEscapeToken.java |  61 --
 .../processors/odbc/escape/OdbcEscapeType.java  | 112 ----
 .../processors/odbc/escape/OdbcEscapeUtils.java | 440 --------------
 .../processors/odbc/odbc/OdbcMessageParser.java | 279 +++++++++
 .../odbc/odbc/OdbcRequestHandler.java           | 513 ++++++++++++++++
 .../odbc/odbc/escape/OdbcEscapeParseResult.java |  73 +++
 .../odbc/odbc/escape/OdbcEscapeToken.java       |  61 ++
 .../odbc/odbc/escape/OdbcEscapeType.java        | 112 ++++
 .../odbc/odbc/escape/OdbcEscapeUtils.java       | 441 ++++++++++++++
 .../processors/query/GridQueryIndexing.java     |  36 +-
 .../processors/query/GridQueryProcessor.java    | 132 ++--
 .../ignite/spi/discovery/tcp/ClientImpl.java    |  21 +-
 .../ignite/spi/discovery/tcp/ServerImpl.java    |   2 +
 .../spi/discovery/tcp/TcpDiscoverySpi.java      |   7 +
 .../resources/META-INF/classnames.properties    |   2 +-
 .../CacheJdbcPojoStoreAbstractSelfTest.java     |  49 ++
 .../processors/cache/IgniteCacheStartTest.java  |  82 +--
 .../cache/distributed/CacheStartOnJoinTest.java | 260 ++++++++
 .../IgniteCacheExpiryPolicyAbstractTest.java    |  15 +-
 .../odbc/OdbcEscapeSequenceSelfTest.java        |   2 +-
 .../ignite/messaging/GridMessagingSelfTest.java |   4 +-
 .../testframework/junits/GridAbstractTest.java  |  12 +
 .../testsuites/IgniteCacheTestSuite4.java       |   2 +
 modules/docker/2.0.0/Dockerfile                 |  46 ++
 modules/docker/2.0.0/run.sh                     |  51 ++
 modules/docker/Dockerfile                       |   2 +-
 .../cache/hibernate/HibernateKeyWrapper.java    |   7 +
 .../HibernateL2CacheStrategySelfTest.java       | 597 +++++++++++++++++++
 .../testsuites/IgniteHibernateTestSuite.java    |   2 +
 .../hibernate/HibernateL2CacheSelfTest.java     |   2 +-
 .../HibernateL2CacheStrategySelfTest.java       | 569 ++++++++++++++++++
 .../testsuites/IgniteHibernate5TestSuite.java   |   2 +
 .../query/h2/DmlStatementsProcessor.java        |  11 +-
 .../processors/query/h2/IgniteH2Indexing.java   |  20 +-
 .../query/h2/sql/GridSqlQuerySplitter.java      |   7 +-
 .../cache/GridCacheCrossCacheQuerySelfTest.java |  12 +-
 ...niteCacheAbstractInsertSqlQuerySelfTest.java |   3 +-
 .../IgniteCacheInsertSqlQuerySelfTest.java      |  22 +
 .../query/IgniteSqlSplitterSelfTest.java        |  30 +
 .../cpp/odbc-test/project/vs/odbc-test.vcxproj  |   1 +
 .../project/vs/odbc-test.vcxproj.filters        |   4 +
 .../cpp/odbc-test/src/configuration_test.cpp    |  40 +-
 .../cpp/odbc-test/src/queries_test.cpp          |  62 +-
 .../cpp/odbc/include/ignite/odbc/message.h      |  45 +-
 .../odbc/include/ignite/odbc/protocol_version.h | 103 ++--
 .../src/system/ui/dsn_configuration_window.cpp  |  42 +-
 modules/platforms/cpp/odbc/src/connection.cpp   |  35 +-
 .../platforms/cpp/odbc/src/protocol_version.cpp | 138 +++--
 .../Apache.Ignite.Core.Tests.csproj             |   1 +
 .../Binary/BinaryDynamicRegistrationTest.cs     |  40 ++
 .../Binary/BinaryNameMapperTest.cs              |   7 +
 .../Binary/TypeNameParserTest.cs                |  93 ++-
 .../Binary/TypeResolverTest.cs                  | 104 ++++
 .../Cache/Query/CacheQueriesTest.cs             |   5 +-
 .../Apache.Ignite.Core.Tests/DeploymentTest.cs  |   1 +
 .../Examples/ExamplesTest.cs                    |   5 +-
 .../Binary/BinaryBasicNameMapper.cs             |   6 +-
 .../Impl/Binary/BinaryProcessor.cs              |  16 +-
 .../Impl/Binary/BinaryReader.cs                 |   6 +-
 .../Impl/Binary/Marshaller.cs                   |  18 +-
 .../Impl/Binary/TypeNameParser.cs               |  31 +-
 .../Impl/Binary/TypeResolver.cs                 | 115 +++-
 .../Impl/Memory/PlatformMemoryStream.cs         |   2 +-
 .../jdbc/CacheJdbcPojoStoreFactorySelfTest.java |   2 +-
 modules/web-console/backend/app/mongo.js        |   1 +
 .../generator/ConfigurationGenerator.js         |   3 +-
 .../states/configuration/domains/general.pug    |   4 +-
 .../states/configuration/domains/query.pug      |   2 +
 .../frontend/controllers/domains-controller.js  |  26 +-
 .../views/configuration/domains-import.tpl.pug  |  11 +-
 131 files changed, 5537 insertions(+), 3395 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/038c00f4/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/ClusterCachesInfo.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/ClusterCachesInfo.java
index f70ea8d,f74343b..9789fdf
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/ClusterCachesInfo.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/ClusterCachesInfo.java
@@@ -894,58 -804,16 +894,66 @@@ class ClusterCachesInfo 
  
              ctx.discovery().addClientNode(cfg.getName(), nodeId, cfg.getNearConfiguration() != null);
          }
+ 
+         if (joinData.startCaches()) {
+             for (DynamicCacheDescriptor desc : registeredCaches.values()) {
+                 ctx.discovery().addClientNode(desc.cacheName(),
+                     nodeId,
+                     desc.cacheConfiguration().getNearConfiguration() != null);
+             }
+         }
      }
  
 +    private CacheGroupDescriptor registerCacheGroup(
 +        ExchangeActions exchActions,
 +        CacheConfiguration startedCacheCfg,
 +        Integer cacheId,
 +        IgniteUuid deploymentId,
 +        AffinityTopologyVersion topVer) {
 +        if (startedCacheCfg.getGroupName() != null) {
 +            CacheGroupDescriptor desc = registeredCacheGrps.get(startedCacheCfg.getGroupName());
 +
 +            if (desc != null) {
 +                desc.onCacheAdded(startedCacheCfg.getName(), cacheId);
 +
 +                return desc;
 +            }
 +        }
 +
 +        int grpId = cacheGrpIdGen++;
 +
 +        Map<String, Integer> caches = Collections.singletonMap(startedCacheCfg.getName(), cacheId);
 +
 +        String grpName = startedCacheCfg.getGroupName() != null ?
 +            startedCacheCfg.getGroupName() : startedCacheCfg.getName();
 +
 +        CacheGroupDescriptor grpDesc = new CacheGroupDescriptor(
 +            grpName,
 +            grpId,
 +            deploymentId,
 +            startedCacheCfg,
 +            topVer,
 +            caches);
 +
 +        CacheGroupDescriptor old = registeredCacheGrps.put(grpName, grpDesc);
 +
 +        assert old == null : old;
 +
 +        ctx.discovery().addCacheGroup(grpDesc, startedCacheCfg.getNodeFilter(), startedCacheCfg.getCacheMode());
 +
 +        if (exchActions != null)
 +            exchActions.addCacheGroupToStart(grpDesc);
 +
 +        return grpDesc;
 +    }
 +
 +    /**
 +     * @return Registered cache groups.
 +     */
 +    ConcurrentMap<String, CacheGroupDescriptor> registeredCacheGroups() {
 +        return registeredCacheGrps;
 +    }
 +
      /**
       * @return Registered caches.
       */

http://git-wip-us.apache.org/repos/asf/ignite/blob/038c00f4/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/038c00f4/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
index 4239fc1,82db451..86ead93
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
@@@ -858,24 -859,31 +877,32 @@@ public class GridCacheProcessor extend
  
          ctx.service().onUtilityCacheStarted();
  
-         AffinityTopologyVersion startTopVer =
+         final AffinityTopologyVersion startTopVer =
              new AffinityTopologyVersion(ctx.discovery().localJoinEvent().topologyVersion(), 0);
  
-         for (GridCacheAdapter cache : caches.values()) {
-             CacheConfiguration cfg = cache.configuration();
+         final List<IgniteInternalFuture> syncFuts = new ArrayList<>(caches.size());
+ 
+         sharedCtx.forAllCaches(new CIX1<GridCacheContext>() {
+             @Override public void applyx(GridCacheContext cctx) throws IgniteCheckedException {
+                 CacheConfiguration cfg = cctx.config();
  
-             if (cache.context().affinityNode() &&
-                 cfg.getRebalanceMode() == SYNC &&
-                 startTopVer.equals(cache.context().startTopologyVersion())) {
-                 CacheMode cacheMode = cfg.getCacheMode();
+                 if (cctx.affinityNode() &&
+                     cfg.getRebalanceMode() == SYNC &&
+                     startTopVer.equals(cctx.startTopologyVersion())) {
+                     CacheMode cacheMode = cfg.getCacheMode();
  
-                 if (cacheMode == REPLICATED || (cacheMode == PARTITIONED && cfg.getRebalanceDelay() >= 0))
-                     cache.preloader().syncFuture().get();
+                     if (cacheMode == REPLICATED || (cacheMode == PARTITIONED && cfg.getRebalanceDelay() >= 0))
+                         // Need to wait outside to avoid a deadlock
+                         syncFuts.add(cctx.preloader().syncFuture());
+                 }
              }
-         }
+         });
+ 
+         for (int i = 0, size = syncFuts.size(); i < size; i++)
+             syncFuts.get(i).get();
  
 -        assert ctx.config().isDaemon() || caches.containsKey(CU.UTILITY_CACHE_NAME) : "Utility cache should be started";
 +        // TODO IGNITE-5075.
 +        // assert ctx.config().isDaemon() || caches.containsKey(CU.UTILITY_CACHE_NAME) : "Utility cache should be started";
  
          if (!ctx.clientNode() && !ctx.isDaemon())
              addRemovedItemsCleanupTask(Long.getLong(IGNITE_CACHE_REMOVED_ENTRIES_TTL, 10_000));

http://git-wip-us.apache.org/repos/asf/ignite/blob/038c00f4/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryManager.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/038c00f4/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java
----------------------------------------------------------------------
diff --cc modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java
index 11640bd,8603d77..e37e051
--- a/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java
@@@ -2057,22 -2056,18 +2057,34 @@@ public abstract class GridAbstractTest 
      }
  
      /**
+      * @param millis Time to sleep.
+      */
+     public static void doSleep(long millis) {
+         try {
+             U.sleep(millis);
+         }
+         catch (Exception e) {
+             throw new IgniteException();
+         }
+     }
+ 
+     /**
 +     * @param node Node.
 +     * @param cacheName Cache name.
 +     * @return Cache group ID for given cache name.
 +     */
 +    protected final int groupIdForCache(Ignite node, String cacheName) {
 +        for (CacheGroupInfrastructure grp : ((IgniteKernal)node).context().cache().cacheGroups()) {
 +            if (cacheName.equals(grp.name()))
 +                return grp.groupId();
 +        }
 +
 +        fail("Failed to find group fro cache: " + cacheName);
 +
 +        return 0;
 +    }
 +
 +    /**
       *
       */
      private static interface WriteReplaceOwner {