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/03 08:31:48 UTC

[48/50] [abbrv] ignite git commit: Merge branch 'ignite-1.8.5'

Merge branch 'ignite-1.8.5'

# Conflicts:
#	modules/core/src/main/java/org/apache/ignite/IgniteJdbcDriver.java
#	modules/core/src/main/java/org/apache/ignite/internal/jdbc2/JdbcConnection.java
#	modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java
#	modules/core/src/main/java/org/apache/ignite/internal/processors/pool/PoolProcessor.java
#	modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
#	modules/core/src/main/java/org/apache/ignite/internal/processors/task/GridTaskWorker.java
#	modules/core/src/test/java/org/apache/ignite/testsuites/IgniteKernalSelfTestSuite.java
#	modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteCacheQuerySelfTestSuite2.java
#	modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteCacheQuerySelfTestSuite3.java
#	modules/web-console/frontend/app/helpers/jade/mixins.pug
#	modules/yardstick/config/benchmark-failover.properties
#	modules/yardstick/config/benchmark-full.properties
#	modules/yardstick/config/benchmark-multicast.properties
#	modules/yardstick/config/benchmark.properties
#	modules/yardstick/config/test-max-int-values-offheap.properties


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

Branch: refs/heads/master
Commit: e9bc0382dc0b785de6f362dadf4fc685586e23a8
Parents: f726dc4 2e6bc44
Author: dkarachentsev <dk...@gridgain.com>
Authored: Mon Apr 3 11:18:27 2017 +0300
Committer: dkarachentsev <dk...@gridgain.com>
Committed: Mon Apr 3 11:18:27 2017 +0300

----------------------------------------------------------------------
 assembly/release-fabric-base.xml                |   6 +
 .../internal/jdbc2/JdbcConnectionSelfTest.java  |  34 +++++
 .../org/apache/ignite/IgniteJdbcDriver.java     |  11 +-
 .../configuration/IgniteConfiguration.java      |  30 ++++
 .../ignite/internal/GridKernalContext.java      |   7 +
 .../ignite/internal/GridKernalContextImpl.java  |  11 ++
 .../apache/ignite/internal/IgniteKernal.java    |   2 +
 .../org/apache/ignite/internal/IgnitionEx.java  |  16 +++
 .../ignite/internal/jdbc2/JdbcConnection.java   |  50 ++++---
 .../managers/communication/GridIoManager.java   |   2 +
 .../managers/communication/GridIoPolicy.java    |   5 +-
 .../continuous/GridContinuousProcessor.java     |   3 +-
 .../internal/processors/pool/PoolProcessor.java |  10 +-
 .../processors/service/GridServiceProxy.java    |  10 ++
 .../task/GridTaskThreadContextKey.java          |   7 +-
 .../processors/task/GridTaskWorker.java         |  16 ++-
 .../ignite/spi/collision/CollisionSpi.java      |  11 +-
 .../ignite/custom/DummyEventFilterFactory.java  |  47 ++++++
 .../ContinuousQueryPeerClassLoadingTest.java    | 142 +++++++++++++++++++
 .../services/ServiceThreadPoolSelfTest.java     | 133 +++++++++++++++++
 .../testsuites/IgniteKernalSelfTestSuite.java   |   2 +
 .../IgniteCacheObjectKeyIndexingSelfTest.java   | 124 ++++++++++++++++
 .../IgniteCacheQuerySelfTestSuite2.java         |   2 +
 .../IgniteCacheQuerySelfTestSuite3.java         |   2 +
 .../config/benchmark-multicast.properties       |   4 +-
 25 files changed, 656 insertions(+), 31 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/e9bc0382/assembly/release-fabric-base.xml
----------------------------------------------------------------------
diff --cc assembly/release-fabric-base.xml
index 4f2a795,78c7777..7a25594
--- a/assembly/release-fabric-base.xml
+++ b/assembly/release-fabric-base.xml
@@@ -178,13 -173,13 +178,19 @@@
              <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>
+ 
          <!-- Other files. -->
          <fileSet>
              <directory>bin</directory>

http://git-wip-us.apache.org/repos/asf/ignite/blob/e9bc0382/modules/clients/src/test/java/org/apache/ignite/internal/jdbc2/JdbcConnectionSelfTest.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/e9bc0382/modules/core/src/main/java/org/apache/ignite/IgniteJdbcDriver.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/IgniteJdbcDriver.java
index 9790b8f,c511d5f..0ee41c0
--- a/modules/core/src/main/java/org/apache/ignite/IgniteJdbcDriver.java
+++ b/modules/core/src/main/java/org/apache/ignite/IgniteJdbcDriver.java
@@@ -292,21 -292,9 +292,24 @@@ public class IgniteJdbcDriver implement
      /** Distributed joins parameter name. */
      private static final String PARAM_DISTRIBUTED_JOINS = "distributedJoins";
  
+     /** Transactions allowed parameter name. */
+     private static final String PARAM_TX_ALLOWED = "transactionsAllowed";
+ 
 +    /** DML streaming parameter name. */
 +    private static final String PARAM_STREAMING = "streaming";
 +
 +    /** DML streaming auto flush frequency. */
 +    private static final String PARAM_STREAMING_FLUSH_FREQ = "streamingFlushFrequency";
 +
 +    /** DML streaming node buffer size. */
 +    private static final String PARAM_STREAMING_PER_NODE_BUF_SIZE = "streamingPerNodeBufferSize";
 +
 +    /** DML streaming parallel operations per node. */
 +    private static final String PARAM_STREAMING_PER_NODE_PAR_OPS = "streamingPerNodeParallelOperations";
 +
 +    /** Whether DML streaming will overwrite existing cache entries. */
-      private static final String PARAM_STREAMING_ALLOW_OVERWRITE = "streamingAllowOverwrite";
++    private static final String PARAM_STREAMING_ALLOW_OVERWRITE = "streamingAllowOverwrite";
 +
      /** Hostname property name. */
      public static final String PROP_HOST = PROP_PREFIX + "host";
  
@@@ -328,21 -316,9 +331,24 @@@
      /** Distributed joins property name. */
      public static final String PROP_DISTRIBUTED_JOINS = PROP_PREFIX + PARAM_DISTRIBUTED_JOINS;
  
+     /** Transactions allowed property name. */
+     public static final String PROP_TX_ALLOWED = PROP_PREFIX + PARAM_TX_ALLOWED;
+ 
 +    /** DML streaming property name. */
 +    public static final String PROP_STREAMING = PROP_PREFIX + PARAM_STREAMING;
 +
 +    /** DML stream auto flush frequency property name. */
 +    public static final String PROP_STREAMING_FLUSH_FREQ = PROP_PREFIX + PARAM_STREAMING_FLUSH_FREQ;
 +
 +    /** DML stream node buffer size property name. */
 +    public static final String PROP_STREAMING_PER_NODE_BUF_SIZE = PROP_PREFIX + PARAM_STREAMING_PER_NODE_BUF_SIZE;
 +
 +    /** DML stream parallel operations per node property name. */
 +    public static final String PROP_STREAMING_PER_NODE_PAR_OPS = PROP_PREFIX + PARAM_STREAMING_PER_NODE_PAR_OPS;
 +
 +    /** Whether DML streaming will overwrite existing cache entries. */
 +    public static final String PROP_STREAMING_ALLOW_OVERWRITE = PROP_PREFIX + PARAM_STREAMING_ALLOW_OVERWRITE;
 +
      /** Cache name property name. */
      public static final String PROP_CFG = PROP_PREFIX + "cfg";
  

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

http://git-wip-us.apache.org/repos/asf/ignite/blob/e9bc0382/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContext.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/e9bc0382/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContextImpl.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/GridKernalContextImpl.java
index 60b368c,8e1fd7e..277f723
--- a/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContextImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/GridKernalContextImpl.java
@@@ -417,7 -407,9 +421,8 @@@ public class GridKernalContextImpl impl
          IgniteConfiguration cfg,
          GridKernalGateway gw,
          ExecutorService utilityCachePool,
 -        ExecutorService marshCachePool,
          ExecutorService execSvc,
+         ExecutorService svcExecSvc,
          ExecutorService sysExecSvc,
          StripedExecutor stripedExecSvc,
          ExecutorService p2pExecSvc,
@@@ -439,7 -429,9 +444,8 @@@
          this.cfg = cfg;
          this.gw = gw;
          this.utilityCachePool = utilityCachePool;
 -        this.marshCachePool = marshCachePool;
          this.execSvc = execSvc;
+         this.svcExecSvc = svcExecSvc;
          this.sysExecSvc = sysExecSvc;
          this.stripedExecSvc = stripedExecSvc;
          this.p2pExecSvc = p2pExecSvc;

http://git-wip-us.apache.org/repos/asf/ignite/blob/e9bc0382/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
index 0ea6ea4,7161166..6705393
--- a/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
@@@ -701,7 -684,9 +701,8 @@@ public class IgniteKernal implements Ig
      public void start(
          final IgniteConfiguration cfg,
          ExecutorService utilityCachePool,
 -        ExecutorService marshCachePool,
          final ExecutorService execSvc,
+         final ExecutorService svcExecSvc,
          final ExecutorService sysExecSvc,
          final StripedExecutor stripedExecSvc,
          ExecutorService p2pExecSvc,
@@@ -811,7 -794,9 +812,8 @@@
                  cfg,
                  gw,
                  utilityCachePool,
 -                marshCachePool,
                  execSvc,
+                 svcExecSvc,
                  sysExecSvc,
                  stripedExecSvc,
                  p2pExecSvc,

http://git-wip-us.apache.org/repos/asf/ignite/blob/e9bc0382/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java
index f6cfe12,8212dd0..1b8f920
--- a/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java
@@@ -1846,7 -1814,9 +1861,8 @@@ public class IgnitionEx 
                  grid0.start(
                      myCfg,
                      utilityCacheExecSvc,
 -                    marshCacheExecSvc,
                      execSvc,
+                     svcExecSvc,
                      sysExecSvc,
                      stripedExecSvc,
                      p2pExecSvc,

http://git-wip-us.apache.org/repos/asf/ignite/blob/e9bc0382/modules/core/src/main/java/org/apache/ignite/internal/jdbc2/JdbcConnection.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/jdbc2/JdbcConnection.java
index 5ee28f7,dc3fe7f..8da385a
--- a/modules/core/src/main/java/org/apache/ignite/internal/jdbc2/JdbcConnection.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/jdbc2/JdbcConnection.java
@@@ -77,11 -73,7 +77,12 @@@ import static org.apache.ignite.IgniteJ
  import static org.apache.ignite.IgniteJdbcDriver.PROP_DISTRIBUTED_JOINS;
  import static org.apache.ignite.IgniteJdbcDriver.PROP_LOCAL;
  import static org.apache.ignite.IgniteJdbcDriver.PROP_NODE_ID;
+ import static org.apache.ignite.IgniteJdbcDriver.PROP_TX_ALLOWED;
 +import static org.apache.ignite.IgniteJdbcDriver.PROP_STREAMING;
 +import static org.apache.ignite.IgniteJdbcDriver.PROP_STREAMING_ALLOW_OVERWRITE;
 +import static org.apache.ignite.IgniteJdbcDriver.PROP_STREAMING_FLUSH_FREQ;
 +import static org.apache.ignite.IgniteJdbcDriver.PROP_STREAMING_PER_NODE_BUF_SIZE;
 +import static org.apache.ignite.IgniteJdbcDriver.PROP_STREAMING_PER_NODE_PAR_OPS;
  
  /**
   * JDBC connection implementation.
@@@ -127,21 -119,12 +128,27 @@@ public class JdbcConnection implements 
      /** Distributed joins flag. */
      private boolean distributedJoins;
  
+     /** Transactions allowed flag. */
+     private boolean txAllowed;
+ 
+     /** Current transaction isolation. */
+     private int txIsolation;
+ 
 +    /** Make this connection streaming oriented, and prepared statements - data streamer aware. */
 +    private final boolean stream;
 +
 +    /** Auto flush frequency for streaming. */
 +    private final long streamFlushTimeout;
 +
 +    /** Node buffer size for data streamer. */
 +    private final int streamNodeBufSize;
 +
 +    /** Parallel ops count per node for data streamer. */
 +    private final int streamNodeParOps;
 +
 +    /** Allow overwrites for duplicate keys on streamed {@code INSERT}s. */
 +    private final boolean streamAllowOverwrite;
 +
      /** Statements. */
      final Set<JdbcStatement> statements = new HashSet<>();
  
@@@ -158,19 -141,12 +165,20 @@@
  
          this.url = url;
  
-         this.cacheName = props.getProperty(PROP_CACHE);
-         this.locQry = Boolean.parseBoolean(props.getProperty(PROP_LOCAL));
-         this.collocatedQry = Boolean.parseBoolean(props.getProperty(PROP_COLLOCATED));
-         this.distributedJoins = Boolean.parseBoolean(props.getProperty(PROP_DISTRIBUTED_JOINS));
+         cacheName = props.getProperty(PROP_CACHE);
+         locQry = Boolean.parseBoolean(props.getProperty(PROP_LOCAL));
+         collocatedQry = Boolean.parseBoolean(props.getProperty(PROP_COLLOCATED));
+         distributedJoins = Boolean.parseBoolean(props.getProperty(PROP_DISTRIBUTED_JOINS));
+         txAllowed = Boolean.parseBoolean(props.getProperty(PROP_TX_ALLOWED));
  
 +        stream = Boolean.parseBoolean(props.getProperty(PROP_STREAMING));
 +        streamAllowOverwrite = Boolean.parseBoolean(props.getProperty(PROP_STREAMING_ALLOW_OVERWRITE));
 +        streamFlushTimeout = Long.parseLong(props.getProperty(PROP_STREAMING_FLUSH_FREQ, "0"));
 +        streamNodeBufSize = Integer.parseInt(props.getProperty(PROP_STREAMING_PER_NODE_BUF_SIZE,
 +            String.valueOf(IgniteDataStreamer.DFLT_PER_NODE_BUFFER_SIZE)));
 +        streamNodeParOps = Integer.parseInt(props.getProperty(PROP_STREAMING_PER_NODE_PAR_OPS,
 +            String.valueOf(IgniteDataStreamer.DFLT_MAX_PARALLEL_OPS)));
 +
          String nodeIdProp = props.getProperty(PROP_NODE_ID);
  
          if (nodeIdProp != null)
@@@ -521,21 -500,10 +537,21 @@@
          if (resSetConcurrency != CONCUR_READ_ONLY)
              throw new SQLFeatureNotSupportedException("Invalid concurrency (updates are not supported).");
  
-         if (resSetHoldability != HOLD_CURSORS_OVER_COMMIT)
+         if (!txAllowed && resSetHoldability != HOLD_CURSORS_OVER_COMMIT)
              throw new SQLFeatureNotSupportedException("Invalid holdability (transactions are not supported).");
  
 -        JdbcPreparedStatement stmt = new JdbcPreparedStatement(this, sql);
 +        JdbcPreparedStatement stmt;
 +
 +        if (!stream)
 +            stmt = new JdbcPreparedStatement(this, sql);
 +        else {
 +            PreparedStatement nativeStmt = prepareNativeStatement(sql);
 +
 +            IgniteDataStreamer<?, ?> streamer = ((IgniteEx) ignite).context().query().createStreamer(cacheName,
 +                nativeStmt, streamFlushTimeout, streamNodeBufSize, streamNodeParOps, streamAllowOverwrite);
 +
 +            stmt = new JdbcStreamedPreparedStatement(this, sql, streamer, nativeStmt);
 +        }
  
          statements.add(stmt);
  

http://git-wip-us.apache.org/repos/asf/ignite/blob/e9bc0382/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java
index 23738d7,2eda4b7..b64027b
--- a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java
@@@ -95,11 -93,12 +95,12 @@@ import static org.apache.ignite.interna
  import static org.apache.ignite.internal.managers.communication.GridIoPolicy.IDX_POOL;
  import static org.apache.ignite.internal.managers.communication.GridIoPolicy.IGFS_POOL;
  import static org.apache.ignite.internal.managers.communication.GridIoPolicy.MANAGEMENT_POOL;
 -import static org.apache.ignite.internal.managers.communication.GridIoPolicy.MARSH_CACHE_POOL;
  import static org.apache.ignite.internal.managers.communication.GridIoPolicy.P2P_POOL;
  import static org.apache.ignite.internal.managers.communication.GridIoPolicy.PUBLIC_POOL;
+ import static org.apache.ignite.internal.managers.communication.GridIoPolicy.SERVICE_POOL;
  import static org.apache.ignite.internal.managers.communication.GridIoPolicy.SYSTEM_POOL;
  import static org.apache.ignite.internal.managers.communication.GridIoPolicy.UTILITY_CACHE_POOL;
 +import static org.apache.ignite.internal.managers.communication.GridIoPolicy.QUERY_POOL;
  import static org.apache.ignite.internal.managers.communication.GridIoPolicy.isReservedGridIoPolicy;
  import static org.apache.ignite.internal.util.nio.GridNioBackPressureControl.threadProcessingMessage;
  import static org.jsr166.ConcurrentLinkedHashMap.QueuePolicy.PER_SEGMENT_Q_OPTIMIZED_RMV;
@@@ -695,10 -684,10 +696,11 @@@ public class GridIoManager extends Grid
                  case MANAGEMENT_POOL:
                  case AFFINITY_POOL:
                  case UTILITY_CACHE_POOL:
 -                case MARSH_CACHE_POOL:
                  case IDX_POOL:
                  case IGFS_POOL:
 +                case DATA_STREAMER_POOL:
 +                case QUERY_POOL:
+                 case SERVICE_POOL:
                  {
                      if (msg.isOrdered())
                          processOrderedMessage(nodeId, msg, plc, msgC);

http://git-wip-us.apache.org/repos/asf/ignite/blob/e9bc0382/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoPolicy.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoPolicy.java
index a3fb370,bb64f6a..0fca817
--- a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoPolicy.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoPolicy.java
@@@ -40,18 -40,18 +40,21 @@@ public class GridIoPolicy 
      /** Utility cache execution pool. */
      public static final byte UTILITY_CACHE_POOL = 5;
  
 -    /** Marshaller cache execution pool. */
 -    public static final byte MARSH_CACHE_POOL = 6;
 -
      /** IGFS pool. */
 -    public static final byte IGFS_POOL = 7;
 +    public static final byte IGFS_POOL = 6;
  
      /** Pool for handling distributed index range requests. */
 -    public static final byte IDX_POOL = 8;
 +    public static final byte IDX_POOL = 7;
 +
 +    /** Data streamer execution pool. */
 +    public static final byte DATA_STREAMER_POOL = 9;
 +
 +    /** Query execution pool. */
 +    public static final byte QUERY_POOL = 10;
  
+     /** Pool for service proxy executions. */
+     public static final byte SERVICE_POOL = 9;
+ 
      /**
       * Defines the range of reserved pools that are not available for plugins.
       * @param key The key.

http://git-wip-us.apache.org/repos/asf/ignite/blob/e9bc0382/modules/core/src/main/java/org/apache/ignite/internal/processors/continuous/GridContinuousProcessor.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/e9bc0382/modules/core/src/main/java/org/apache/ignite/internal/processors/pool/PoolProcessor.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/pool/PoolProcessor.java
index f84b741,66efc8c..f6c8b2e
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/pool/PoolProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/pool/PoolProcessor.java
@@@ -123,16 -127,11 +122,21 @@@ public class PoolProcessor extends Grid
  
                  return ctx.getIgfsExecutorService();
  
+             case GridIoPolicy.SERVICE_POOL:
+                 assert ctx.getServiceExecutorService() != null : "Service pool is not configured.";
+ 
+                 return ctx.getServiceExecutorService();
+ 
 +            case GridIoPolicy.DATA_STREAMER_POOL:
 +                assert ctx.getDataStreamerExecutorService() != null : "Data streamer pool is not configured.";
 +
 +                return ctx.getDataStreamerExecutorService();
 +
 +            case GridIoPolicy.QUERY_POOL:
 +                assert ctx.getQueryExecutorService() != null : "Query pool is not configured.";
 +
 +                return ctx.getQueryExecutorService();
 +
              default: {
                  if (plc < 0)
                      throw new IgniteCheckedException("Policy cannot be negative: " + plc);

http://git-wip-us.apache.org/repos/asf/ignite/blob/e9bc0382/modules/core/src/main/java/org/apache/ignite/internal/processors/task/GridTaskWorker.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/task/GridTaskWorker.java
index 6305d23,c426008..cb5aabe
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/task/GridTaskWorker.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/task/GridTaskWorker.java
@@@ -1376,8 -1382,21 +1377,21 @@@ class GridTaskWorker<T, R> extends Grid
                      if (loc)
                          ctx.job().processJobExecuteRequest(ctx.discovery().localNode(), req);
                      else {
+                         byte plc;
+ 
+                         if (internal)
+                             plc = MANAGEMENT_POOL;
+                         else {
+                             Byte ctxPlc = getThreadContext(TC_IO_POLICY);
+ 
+                             if (ctxPlc != null)
+                                 plc = ctxPlc;
+                             else
+                                 plc = PUBLIC_POOL;
+                         }
+ 
                          // Send job execution request.
-                         ctx.io().sendToGridTopic(node, TOPIC_JOB, req, internal ? MANAGEMENT_POOL : PUBLIC_POOL);
 -                        ctx.io().send(node, TOPIC_JOB, req, plc);
++                        ctx.io().sendToGridTopic(node, TOPIC_JOB, req, plc);
  
                          if (log.isDebugEnabled())
                              log.debug("Sent job request [req=" + req + ", node=" + node + ']');

http://git-wip-us.apache.org/repos/asf/ignite/blob/e9bc0382/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteKernalSelfTestSuite.java
----------------------------------------------------------------------
diff --cc modules/core/src/test/java/org/apache/ignite/testsuites/IgniteKernalSelfTestSuite.java
index a0d37e9,9b41fbc..cd1be7b
--- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteKernalSelfTestSuite.java
+++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteKernalSelfTestSuite.java
@@@ -143,7 -147,8 +144,8 @@@ public class IgniteKernalSelfTestSuite 
          suite.addTestSuite(IgniteServiceReassignmentTest.class);
          suite.addTestSuite(IgniteServiceProxyTimeoutInitializedTest.class);
          suite.addTestSuite(IgniteServiceDynamicCachesSelfTest.class);
 -        suite.addTestSuite(GridServiceContinuousQueryRedeploy.class);
 +        suite.addTestSuite(GridServiceContinuousQueryRedeployTest.class);
+         suite.addTestSuite(ServiceThreadPoolSelfTest.class);
  
          suite.addTestSuite(IgniteServiceDeploymentClassLoadingDefaultMarshallerTest.class);
          suite.addTestSuite(IgniteServiceDeploymentClassLoadingOptimizedMarshallerTest.class);

http://git-wip-us.apache.org/repos/asf/ignite/blob/e9bc0382/modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteCacheQuerySelfTestSuite2.java
----------------------------------------------------------------------
diff --cc modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteCacheQuerySelfTestSuite2.java
index a0db90c,923a79c..e3f89fe
--- a/modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteCacheQuerySelfTestSuite2.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteCacheQuerySelfTestSuite2.java
@@@ -18,21 -18,42 +18,22 @@@
  package org.apache.ignite.testsuites;
  
  import junit.framework.TestSuite;
 -import org.apache.ignite.internal.processors.cache.CacheLocalQueryDetailMetricsSelfTest;
 -import org.apache.ignite.internal.processors.cache.CacheLocalQueryMetricsSelfTest;
 -import org.apache.ignite.internal.processors.cache.CacheOffheapBatchIndexingSingleTypeTest;
 -import org.apache.ignite.internal.processors.cache.CachePartitionedQueryDetailMetricsDistributedSelfTest;
 -import org.apache.ignite.internal.processors.cache.CachePartitionedQueryDetailMetricsLocalSelfTest;
 -import org.apache.ignite.internal.processors.cache.CachePartitionedQueryMetricsDistributedSelfTest;
 -import org.apache.ignite.internal.processors.cache.CachePartitionedQueryMetricsLocalSelfTest;
 -import org.apache.ignite.internal.processors.cache.CacheQueryNewClientSelfTest;
 -import org.apache.ignite.internal.processors.cache.CacheQueryOffheapEvictDataLostTest;
 -import org.apache.ignite.internal.processors.cache.CacheReplicatedQueryDetailMetricsDistributedSelfTest;
 -import org.apache.ignite.internal.processors.cache.CacheReplicatedQueryDetailMetricsLocalSelfTest;
 -import org.apache.ignite.internal.processors.cache.CacheReplicatedQueryMetricsDistributedSelfTest;
 -import org.apache.ignite.internal.processors.cache.CacheReplicatedQueryMetricsLocalSelfTest;
  import org.apache.ignite.internal.processors.cache.CacheScanPartitionQueryFallbackSelfTest;
 -import org.apache.ignite.internal.processors.cache.CacheSqlQueryValueCopySelfTest;
 -import org.apache.ignite.internal.processors.cache.GridCacheQueryIndexingDisabledSelfTest;
 -import org.apache.ignite.internal.processors.cache.IgniteCacheFieldsQueryNoDataSelfTest;
 -import org.apache.ignite.internal.processors.cache.IgniteCacheNoClassQuerySelfTest;
 +import org.apache.ignite.internal.processors.cache.IgniteCacheCrossCacheJoinRandomTest;
+ import org.apache.ignite.internal.processors.cache.IgniteCacheObjectKeyIndexingSelfTest;
 -import org.apache.ignite.internal.processors.cache.IgniteCacheP2pUnmarshallingQueryErrorTest;
 -import org.apache.ignite.internal.processors.cache.SqlFieldsQuerySelfTest;
 -import org.apache.ignite.internal.processors.cache.distributed.near.IgniteCacheAtomicFieldsQuerySelfTest;
 -import org.apache.ignite.internal.processors.cache.distributed.near.IgniteCacheAtomicNearEnabledFieldsQuerySelfTest;
 -import org.apache.ignite.internal.processors.cache.distributed.near.IgniteCacheDistributedQueryCancelSelfTest;
 +import org.apache.ignite.internal.processors.cache.IgniteCacheOffheapTieredMultithreadedSelfTest;
 +import org.apache.ignite.internal.processors.cache.IgniteCachePartitionedQueryMultiThreadedSelfTest;
 +import org.apache.ignite.internal.processors.cache.IgniteCacheQueryEvictsMultiThreadedSelfTest;
 +import org.apache.ignite.internal.processors.cache.IgniteCacheQueryMultiThreadedOffHeapTieredSelfTest;
 +import org.apache.ignite.internal.processors.cache.IgniteCacheQueryMultiThreadedSelfTest;
 +import org.apache.ignite.internal.processors.cache.IgniteCacheQueryOffheapEvictsMultiThreadedSelfTest;
 +import org.apache.ignite.internal.processors.cache.IgniteCacheQueryOffheapMultiThreadedSelfTest;
 +import org.apache.ignite.internal.processors.cache.IgniteCacheSqlQueryMultiThreadedSelfTest;
 +import org.apache.ignite.internal.processors.cache.distributed.near.IgniteCacheClientQueryReplicatedNodeRestartSelfTest;
  import org.apache.ignite.internal.processors.cache.distributed.near.IgniteCacheDistributedQueryStopOnCancelOrTimeoutSelfTest;
 -import org.apache.ignite.internal.processors.cache.distributed.near.IgniteCachePartitionedFieldsQueryP2PEnabledSelfTest;
 -import org.apache.ignite.internal.processors.cache.distributed.near.IgniteCachePartitionedFieldsQuerySelfTest;
 -import org.apache.ignite.internal.processors.cache.distributed.near.IgniteCacheQueryStopOnCancelOrTimeoutDistributedJoinSelfTest;
 -import org.apache.ignite.internal.processors.cache.distributed.replicated.IgniteCacheReplicatedFieldsQueryP2PEnabledSelfTest;
 -import org.apache.ignite.internal.processors.cache.distributed.replicated.IgniteCacheReplicatedFieldsQuerySelfTest;
 -import org.apache.ignite.internal.processors.cache.local.IgniteCacheLocalFieldsQuerySelfTest;
 -import org.apache.ignite.internal.processors.cache.local.IgniteCacheLocalQueryCancelOrTimeoutSelfTest;
 -import org.apache.ignite.internal.processors.cache.query.GridCacheSwapScanQuerySelfTest;
 -import org.apache.ignite.internal.processors.query.h2.sql.BaseH2CompareQueryTest;
 -import org.apache.ignite.internal.processors.query.h2.sql.H2CompareBigQueryTest;
 -import org.apache.ignite.spi.communication.tcp.GridOrderedMessageCancelSelfTest;
 +import org.apache.ignite.internal.processors.cache.distributed.near.IgniteCacheQueryNodeFailTest;
 +import org.apache.ignite.internal.processors.cache.distributed.near.IgniteCacheQueryNodeRestartSelfTest;
 +import org.apache.ignite.internal.processors.cache.distributed.near.IgniteCacheQueryNodeRestartSelfTest2;
  import org.apache.ignite.testframework.IgniteTestSuite;
  
  /**
@@@ -46,21 -67,61 +47,22 @@@ public class IgniteCacheQuerySelfTestSu
      public static TestSuite suite() throws Exception {
          TestSuite suite = new IgniteTestSuite("Ignite Cache Queries Test Suite 2");
  
 -        // Scan queries.
 +        suite.addTestSuite(IgniteCacheQueryMultiThreadedSelfTest.class);
 +        suite.addTestSuite(IgniteCacheQueryMultiThreadedOffHeapTieredSelfTest.class);
 +        suite.addTestSuite(IgniteCacheQueryOffheapMultiThreadedSelfTest.class);
 +        suite.addTestSuite(IgniteCacheOffheapTieredMultithreadedSelfTest.class);
 +        suite.addTestSuite(IgniteCacheQueryEvictsMultiThreadedSelfTest.class);
 +        suite.addTestSuite(IgniteCacheQueryOffheapEvictsMultiThreadedSelfTest.class);
 +        suite.addTestSuite(IgniteCacheCrossCacheJoinRandomTest.class);
 +        suite.addTestSuite(IgniteCacheClientQueryReplicatedNodeRestartSelfTest.class);
 +        suite.addTestSuite(IgniteCacheQueryNodeFailTest.class);
 +        suite.addTestSuite(IgniteCacheQueryNodeRestartSelfTest.class);
 +        suite.addTestSuite(IgniteCacheQueryNodeRestartSelfTest2.class);
 +        suite.addTestSuite(IgniteCacheSqlQueryMultiThreadedSelfTest.class);
 +        suite.addTestSuite(IgniteCachePartitionedQueryMultiThreadedSelfTest.class);
          suite.addTestSuite(CacheScanPartitionQueryFallbackSelfTest.class);
 -
 -        // Fields queries.
 -        suite.addTestSuite(SqlFieldsQuerySelfTest.class);
 -        suite.addTestSuite(IgniteCacheLocalFieldsQuerySelfTest.class);
 -        suite.addTestSuite(IgniteCacheReplicatedFieldsQuerySelfTest.class);
 -        suite.addTestSuite(IgniteCacheReplicatedFieldsQueryP2PEnabledSelfTest.class);
 -        suite.addTestSuite(IgniteCachePartitionedFieldsQuerySelfTest.class);
 -        suite.addTestSuite(IgniteCacheAtomicFieldsQuerySelfTest.class);
 -        suite.addTestSuite(IgniteCacheAtomicNearEnabledFieldsQuerySelfTest.class);
 -        suite.addTestSuite(IgniteCachePartitionedFieldsQueryP2PEnabledSelfTest.class);
 -        suite.addTestSuite(IgniteCacheFieldsQueryNoDataSelfTest.class);
 -
 -        suite.addTestSuite(GridCacheQueryIndexingDisabledSelfTest.class);
 -
 -        suite.addTestSuite(GridCacheSwapScanQuerySelfTest.class);
 -
 -        suite.addTestSuite(GridOrderedMessageCancelSelfTest.class);
 -
 -        suite.addTestSuite(CacheQueryOffheapEvictDataLostTest.class);
 -
 -        // Ignite cache and H2 comparison.
 -        suite.addTestSuite(BaseH2CompareQueryTest.class);
 -        suite.addTestSuite(H2CompareBigQueryTest.class);
 -
 -        // Cache query metrics.
 -        suite.addTestSuite(CacheLocalQueryMetricsSelfTest.class);
 -        suite.addTestSuite(CachePartitionedQueryMetricsDistributedSelfTest.class);
 -        suite.addTestSuite(CachePartitionedQueryMetricsLocalSelfTest.class);
 -        suite.addTestSuite(CacheReplicatedQueryMetricsDistributedSelfTest.class);
 -        suite.addTestSuite(CacheReplicatedQueryMetricsLocalSelfTest.class);
 -
 -        // Cache query metrics.
 -        suite.addTestSuite(CacheLocalQueryDetailMetricsSelfTest.class);
 -        suite.addTestSuite(CachePartitionedQueryDetailMetricsDistributedSelfTest.class);
 -        suite.addTestSuite(CachePartitionedQueryDetailMetricsLocalSelfTest.class);
 -        suite.addTestSuite(CacheReplicatedQueryDetailMetricsDistributedSelfTest.class);
 -        suite.addTestSuite(CacheReplicatedQueryDetailMetricsLocalSelfTest.class);
 -
 -        // Unmarshalling query test.
 -        suite.addTestSuite(IgniteCacheP2pUnmarshallingQueryErrorTest.class);
 -        suite.addTestSuite(IgniteCacheNoClassQuerySelfTest.class);
 -
 -        // Cancellation.
          suite.addTestSuite(IgniteCacheDistributedQueryStopOnCancelOrTimeoutSelfTest.class);
 -        suite.addTestSuite(IgniteCacheDistributedQueryCancelSelfTest.class);
 -        suite.addTestSuite(IgniteCacheLocalQueryCancelOrTimeoutSelfTest.class);
 -        suite.addTestSuite(IgniteCacheQueryStopOnCancelOrTimeoutDistributedJoinSelfTest.class);
 -
 -        // Other.
 -        suite.addTestSuite(CacheQueryNewClientSelfTest.class);
 -        suite.addTestSuite(CacheOffheapBatchIndexingSingleTypeTest.class);
 -        suite.addTestSuite(CacheSqlQueryValueCopySelfTest.class);
+         suite.addTestSuite(IgniteCacheObjectKeyIndexingSelfTest.class);
  
          return suite;
      }

http://git-wip-us.apache.org/repos/asf/ignite/blob/e9bc0382/modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteCacheQuerySelfTestSuite3.java
----------------------------------------------------------------------
diff --cc modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteCacheQuerySelfTestSuite3.java
index 07125a6,6b2fea0..a4594ee
--- a/modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteCacheQuerySelfTestSuite3.java
+++ b/modules/indexing/src/test/java/org/apache/ignite/testsuites/IgniteCacheQuerySelfTestSuite3.java
@@@ -34,7 -34,7 +34,8 @@@ import org.apache.ignite.internal.proce
  import org.apache.ignite.internal.processors.cache.query.continuous.CacheKeepBinaryIterationTest;
  import org.apache.ignite.internal.processors.cache.query.continuous.CacheKeepBinaryIterationStoreEnabledTest;
  import org.apache.ignite.internal.processors.cache.query.continuous.CacheKeepBinaryIterationSwapEnabledTest;
 +import org.apache.ignite.internal.processors.cache.query.continuous.ClientReconnectContinuousQueryTest;
+ import org.apache.ignite.internal.processors.cache.query.continuous.ContinuousQueryPeerClassLoadingTest;
  import org.apache.ignite.internal.processors.cache.query.continuous.ContinuousQueryRemoteFilterMissingInClassPathSelfTest;
  import org.apache.ignite.internal.processors.cache.query.continuous.GridCacheContinuousQueryAtomicNearEnabledSelfTest;
  import org.apache.ignite.internal.processors.cache.query.continuous.GridCacheContinuousQueryAtomicOffheapTieredTest;
@@@ -124,7 -124,7 +125,8 @@@ public class IgniteCacheQuerySelfTestSu
          suite.addTestSuite(CacheKeepBinaryIterationNearEnabledTest.class);
          suite.addTestSuite(IgniteCacheContinuousQueryBackupQueueTest.class);
          suite.addTestSuite(IgniteCacheContinuousQueryNoUnsubscribeTest.class);
+         suite.addTestSuite(ContinuousQueryPeerClassLoadingTest.class);
 +        suite.addTestSuite(ClientReconnectContinuousQueryTest.class);
  
          return suite;
      }

http://git-wip-us.apache.org/repos/asf/ignite/blob/e9bc0382/modules/yardstick/config/benchmark-multicast.properties
----------------------------------------------------------------------