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/26 14:06:37 UTC

[37/39] ignite git commit: Merge branch 'ignite-5075-cc' into ignite-5075-cc-debug

Merge branch 'ignite-5075-cc' into ignite-5075-cc-debug

# Conflicts:
#	modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
#	modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryEntry.java
#	modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryEventBuffer.java


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

Branch: refs/heads/ignite-5075-cc-debug
Commit: 7e56f3ae8cb616018cf267e9f4f16e66482f7ea5
Parents: 58919c5 be43bf8
Author: sboikov <sb...@gridgain.com>
Authored: Fri May 26 16:45:51 2017 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Fri May 26 16:45:51 2017 +0300

----------------------------------------------------------------------
 doap_Ignite.rdf                                 |    2 +
 .../examples/datagrid/CacheQueryExample.java    |    2 +-
 .../jdbc/suite/IgniteJdbcDriverTestSuite.java   |    3 +
 .../jdbc/thin/JdbcConnectionSelfTest.java       |  195 ++
 .../src/main/java/org/apache/ignite/Ignite.java |   18 +-
 .../org/apache/ignite/IgniteJdbcThinDriver.java |  312 +++
 .../configuration/CacheConfiguration.java       |    5 +-
 .../MemoryPolicyConfiguration.java              |   96 +-
 .../ignite/internal/GridKernalContext.java      |    8 +-
 .../ignite/internal/GridKernalContextImpl.java  |   12 +-
 .../org/apache/ignite/internal/IgniteEx.java    |   27 +
 .../apache/ignite/internal/IgniteKernal.java    |   42 +-
 .../internal/binary/BinaryWriterExImpl.java     |   16 +-
 .../internal/jdbc/thin/JdbcConnection.java      |  529 +++++
 .../ignite/internal/jdbc/thin/JdbcTcpIo.java    |  207 ++
 .../ignite/internal/jdbc2/JdbcConnection.java   |    3 +-
 .../managers/communication/GridIoManager.java   |  380 +++-
 .../communication/IgniteIoTestMessage.java      |  362 ++-
 .../managers/indexing/GridIndexingManager.java  |   19 +-
 .../processors/cache/ClusterCachesInfo.java     |   10 +-
 .../processors/cache/ExchangeActions.java       |    2 +-
 .../processors/cache/GridCacheIoManager.java    |    6 +-
 .../processors/cache/GridCacheMapEntry.java     |    7 +-
 .../GridCachePartitionExchangeManager.java      |    2 +-
 .../processors/cache/GridCacheProcessor.java    |   47 +-
 .../processors/cache/IgniteCacheProxy.java      |   15 +-
 .../IgniteCacheDatabaseSharedManager.java       |   40 +
 .../cache/database/MemoryMetricsImpl.java       |   31 +-
 .../cache/database/tree/BPlusTree.java          |   64 +-
 .../dht/GridClientPartitionTopology.java        |   31 +-
 .../dht/GridDhtPartitionTopology.java           |    9 +-
 .../dht/GridDhtPartitionTopologyImpl.java       |   59 +-
 .../GridDhtPartitionsExchangeFuture.java        |   51 +-
 .../cache/query/GridCacheQueryManager.java      |   32 +-
 .../continuous/CacheContinuousQueryEntry.java   |   73 +-
 .../CacheContinuousQueryEventBuffer.java        |  224 +-
 .../continuous/CacheContinuousQueryHandler.java |    4 +-
 .../continuous/CacheContinuousQueryManager.java |   16 +-
 .../CacheContinuousQueryPartitionRecovery.java  |    2 +-
 .../processors/odbc/OdbcNioListener.java        |  242 --
 .../internal/processors/odbc/OdbcProcessor.java |  199 --
 .../odbc/SqlListenerAbstractMessageParser.java  |  265 +++
 .../odbc/SqlListenerAbstractObjectReader.java   |  137 ++
 .../odbc/SqlListenerAbstractObjectWriter.java   |  111 +
 .../processors/odbc/SqlListenerNioListener.java |  263 +++
 .../processors/odbc/SqlListenerProcessor.java   |  191 ++
 .../odbc/SqlListenerRequestHandlerImpl.java     |  494 ++++
 .../processors/odbc/jdbc/JdbcMessageParser.java |   50 +
 .../processors/odbc/jdbc/JdbcObjectReader.java  |   33 +
 .../processors/odbc/jdbc/JdbcObjectWriter.java  |   33 +
 .../processors/odbc/odbc/OdbcMessageParser.java |  249 +--
 .../processors/odbc/odbc/OdbcObjectReader.java  |   33 +
 .../processors/odbc/odbc/OdbcObjectWriter.java  |   32 +
 .../odbc/odbc/OdbcRequestHandler.java           |  513 -----
 .../processors/query/GridQueryIndexing.java     |   96 +-
 .../processors/query/GridQueryProcessor.java    |  232 +-
 .../processors/query/QueryIndexKey.java         |   20 +-
 .../query/QueryTypeDescriptorImpl.java          |   16 +-
 .../processors/query/QueryTypeIdKey.java        |   26 +-
 .../processors/query/QueryTypeNameKey.java      |   12 +-
 .../internal/processors/query/QueryUtils.java   |   14 +-
 .../schema/SchemaIndexCacheVisitorImpl.java     |   12 +-
 .../operation/SchemaAbstractOperation.java      |    2 +-
 .../handlers/GridRestCommandHandlerAdapter.java |    3 +
 .../handlers/cache/GridCacheCommandHandler.java |   10 +-
 .../handlers/query/QueryCommandHandler.java     |   13 +-
 .../spi/indexing/IndexingQueryFilter.java       |    8 +-
 .../apache/ignite/spi/indexing/IndexingSpi.java |   17 +-
 .../spi/indexing/noop/NoopIndexingSpi.java      |    6 +-
 ...iteMarshallerCacheClassNameConflictTest.java |    9 +-
 .../IgniteTxExceptionAbstractSelfTest.java      |    6 +-
 .../cache/MemoryPolicyConfigValidationTest.java |   62 +-
 .../cache/query/IndexingSpiQuerySelfTest.java   |   14 +-
 .../cache/query/IndexingSpiQueryTxSelfTest.java |    6 +-
 .../CacheContinuousQueryEventBufferTest.java    |    7 +-
 ...eCacheContinuousQueryImmutableEntryTest.java |    4 +-
 .../processors/igfs/IgfsIgniteMock.java         |   24 +
 .../odbc/OdbcProcessorValidationSelfTest.java   |  182 --
 .../SqlListenerProcessorValidationSelfTest.java |  184 ++
 .../ignite/testframework/GridTestUtils.java     |    8 +-
 .../config/GridTestProperties.java              |    3 +-
 .../ignite/testframework/junits/IgniteMock.java |    5 +
 .../junits/multijvm/IgniteProcessProxy.java     |   18 +
 .../ignite/testsuites/IgniteBasicTestSuite.java |   17 +-
 .../testsuites/IgniteBinaryBasicTestSuite.java  |   75 +-
 ...iteBinarySimpleNameMapperBasicTestSuite.java |    3 +-
 .../query/h2/DmlStatementsProcessor.java        |   71 +-
 .../query/h2/GridH2ResultSetIterator.java       |  191 --
 .../query/h2/H2ConnectionWrapper.java           |   67 +
 .../processors/query/h2/H2DatabaseType.java     |  161 ++
 .../processors/query/h2/H2FieldsIterator.java   |   50 +
 .../processors/query/h2/H2KeyValueIterator.java |   48 +
 .../query/h2/H2ResultSetIterator.java           |  191 ++
 .../processors/query/h2/H2RowDescriptor.java    |  479 ++++
 .../internal/processors/query/h2/H2Schema.java  |  135 ++
 .../processors/query/h2/H2SqlFieldMetadata.java |  111 +
 .../processors/query/h2/H2StatementCache.java   |   73 +
 .../processors/query/h2/H2TableDescriptor.java  |  345 +++
 .../processors/query/h2/H2TableEngine.java      |   89 +
 .../query/h2/H2TwoStepCachedQuery.java          |   49 +
 .../query/h2/H2TwoStepCachedQueryKey.java       |  107 +
 .../internal/processors/query/h2/H2Utils.java   |  299 +++
 .../processors/query/h2/IgniteH2Indexing.java   | 2112 +++---------------
 .../query/h2/database/H2PkHashIndex.java        |    4 +-
 .../query/h2/database/H2TreeIndex.java          |    4 +-
 .../query/h2/ddl/DdlStatementsProcessor.java    |   55 +-
 .../query/h2/opt/GridH2IndexBase.java           |   10 +-
 .../processors/query/h2/opt/GridH2Table.java    |    2 +-
 .../query/h2/opt/GridH2TreeIndex.java           |    2 +-
 .../query/h2/opt/GridLuceneIndex.java           |   15 +-
 .../query/h2/sql/GridSqlCreateTable.java        |  153 ++
 .../query/h2/sql/GridSqlDropTable.java          |   79 +
 .../query/h2/sql/GridSqlQueryParser.java        |  260 +++
 .../query/h2/sql/GridSqlQuerySplitter.java      |    4 +-
 .../query/h2/twostep/GridMapQueryExecutor.java  |    8 +-
 .../h2/twostep/GridReduceQueryExecutor.java     |   39 +-
 .../cache/GridCacheCrossCacheQuerySelfTest.java |   12 +-
 .../DynamicIndexAbstractBasicSelfTest.java      |   18 +-
 .../DynamicIndexAbstractConcurrentSelfTest.java |    8 +-
 .../cache/index/H2DynamicTableSelfTest.java     |  320 +++
 .../query/IgniteQueryDedicatedPoolTest.java     |    6 +-
 .../h2/GridIndexingSpiAbstractSelfTest.java     |  140 +-
 .../query/h2/sql/GridQueryParsingTest.java      |  286 ++-
 .../IgniteCacheQuerySelfTestSuite.java          |    2 +
 .../cpp/odbc/include/ignite/odbc/message.h      |   10 +
 .../Impl/CacheFieldsQueryExecutor.cs            |   39 -
 .../Impl/CacheQueryableBase.cs                  |   14 +-
 .../Impl/ICacheQueryableInternal.cs             |    6 -
 .../org/apache/ignite/IgniteSpringBean.java     |    7 +
 .../yardstick/IgniteBenchmarkArguments.java     |   11 +
 .../org/apache/ignite/yardstick/IgniteNode.java |    5 +
 .../apache/ignite/yardstick/io/FileUtils.java   |   64 +
 132 files changed, 8742 insertions(+), 4341 deletions(-)
----------------------------------------------------------------------


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

http://git-wip-us.apache.org/repos/asf/ignite/blob/7e56f3ae/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryEventBuffer.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryEventBuffer.java
index 5346144,7d33614..d0950ef
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryEventBuffer.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/query/continuous/CacheContinuousQueryEventBuffer.java
@@@ -28,9 -27,8 +27,10 @@@ import java.util.concurrent.ConcurrentS
  import java.util.concurrent.atomic.AtomicReference;
  import org.apache.ignite.IgniteSystemProperties;
  import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion;
 +import org.apache.ignite.spi.communication.tcp.TestDebugLog;
 +import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion;
  import org.jetbrains.annotations.Nullable;
+ import org.jsr166.ConcurrentLinkedDeque8;
  
  /**
   *
@@@ -85,27 -83,31 +85,39 @@@ public class CacheContinuousQueryEventB
          Batch batch = curBatch.get();
  
          if (batch != null)
-             entries = batch.backupFlushEntries();
+             ret = batch.flushCurrentEntries();
+ 
+         int size = backupQ.sizex();
  
-         if (!backupQ.isEmpty()) {
-             if (entries != null)
-                 backupQ.addAll(entries);
+         if (size > 0) {
+             if (ret == null)
+                 ret = new ArrayList<>();
+ 
+             for (int i = 0; i < size; i++) {
+                 CacheContinuousQueryEntry e = backupQ.pollFirst();
+ 
+                 if (e != null)
+                     ret.add(e);
+                 else
+                     break;
+             }
+         }
  
-             ret = this.backupQ;
+         if (!pending.isEmpty()) {
+             if (ret == null)
+                 ret = new ArrayList<>();
  
-             backupQ = new ConcurrentLinkedDeque<>();
+             ret.addAll(pending.values());
          }
-         else
-             ret = entries;
  
 +        if (ret != null) {
 +            for (CacheContinuousQueryEntry e : ret)
 +                TestDebugLog.addEntryMessage(part,
 +                    e.updateCounter(),
 +                    "filtered " + e.filteredCount() +
 +                        " reset backup");
 +        }
 +
          return ret;
      }
  
@@@ -145,33 -147,29 +157,39 @@@
      private Object process0(long cntr, CacheContinuousQueryEntry entry, boolean backup) {
          assert cntr >= 0 : cntr;
  
-         Batch batch = initBatch(entry.topologyVersion());
+         Batch batch;
+         Object res = null;
  
-         if (batch == null || cntr < batch.startCntr) {
-             if (backup)
-                 backupQ.add(entry);
+         for (;;) {
+             batch = initBatch(entry.topologyVersion());
+ 
+             if (batch == null || cntr < batch.startCntr) {
+                 if (backup)
+                     backupQ.add(entry);
  
 -                return entry;
 -            }
 +            TestDebugLog.addEntryMessage(part,
 +                cntr,
 +                "buffer rcd small start=" + batch.startCntr +
 +                    " cntr=" + cntr +
 +                    ", backup=" + backup +
-                     " topVer=" + ((CacheContinuousQueryEntry)entry).topologyVersion());
- 
-             return entry;
++                    " topVer=" + ((CacheContinuousQueryEntry)entry).topologyVersion());return entry;
 +        }
  
-         Object res = null;
+             if (cntr <= batch.endCntr) {
+                 res = batch.processEntry0(null, cntr, entry, backup);
  
-         if (cntr <= batch.endCntr)
-             res = batch.processEvent0(null, cntr, entry, backup);
-         else {
 -                if (res == RETRY)
++        if (
++            res = = RETRY)
+                     continue;
+             }
 -            else
 -                pending.put(cntr, entry);
++        else{
 +            TestDebugLog.addEntryMessage(part,
 +                cntr,
 +                "buffer add pending start=" + batch.startCntr +
 +                    " cntr=" + cntr +
-                     " topVer=" + ((CacheContinuousQueryEntry)entry).topologyVersion());
-             pending.put(cntr, entry);
++                    " topVer=" + ((CacheContinuousQueryEntry)entry).topologyVersion());pending.put(cntr, entry);}
+ 
+             break;
          }
  
          Batch batch0 = curBatch.get();
@@@ -200,19 -198,22 +218,22 @@@
          if (batch != null)
              return batch;
  
-         long curCntr = currentPartitionCounter();
+         for (;;) {
+             long curCntr = currentPartitionCounter();
  
-         if (curCntr == -1)
-             return null;
+             if (curCntr == -1)
+                 return null;
  
-         TestDebugLog.addEntryMessage(part, curCntr, "created batch");
 -            batch = new Batch(curCntr + 1, 0L, new CacheContinuousQueryEntry[BUF_SIZE], topVer);
++        TestDebugLog.addEntryMessage(part, curCntr, "created batch");batch = new Batch(curCntr + 1, 0L, new CacheContinuousQueryEntry[BUF_SIZE], topVer);
  
-         batch = new Batch(curCntr + 1, 0L, new CacheContinuousQueryEntry[BUF_SIZE], topVer);
+             if (curBatch.compareAndSet(null, batch))
+                 return batch;
  
-         if (curBatch.compareAndSet(null, batch))
-             return batch;
+             batch = curBatch.get();
  
-         return curBatch.get();
+             if (batch != null)
+                 return batch;
+         }
      }
  
      /**
@@@ -376,13 -423,9 +443,16 @@@
              int pos = (int)(cntr - startCntr);
  
              synchronized (this) {
+                 if (entries == null)
+                     return RETRY;
+ 
 +                TestDebugLog.addEntryMessage(part,
 +                    cntr,
 +                    "buffer process start=" + startCntr +
 +                        ", lastProc=" + lastProc +
 +                        " pos=" + pos +
 +                        " topVer=" + entry.topologyVersion());
 +
                  entries[pos] = entry;
  
                  int next = lastProc + 1;
@@@ -405,45 -440,11 +475,20 @@@
  
                                  filtered = 0;
  
-                                 if (res == null) {
-                                     if (backup)
-                                         backupQ.add(entry0);
-                                     else
-                                         res = entry0;
-                                 }
-                                 else {
-                                     assert !backup;
- 
-                                     List<CacheContinuousQueryEntry> resList;
- 
-                                     if (res instanceof CacheContinuousQueryEntry) {
-                                         resList = new ArrayList<>();
- 
-                                         resList.add((CacheContinuousQueryEntry)res);
-                                     }
-                                     else {
-                                         assert res instanceof List : res;
- 
-                                         resList = (List<CacheContinuousQueryEntry>)res;
-                                     }
- 
-                                     resList.add(entry0);
- 
-                                     res = resList;
-                                 }
+                                 res = addResult(res, entry0, backup);
                              }
 -                            else
 +                            else {
                                  filtered++;
  
 +                                TestDebugLog.addEntryMessage(part,
 +                                    cntr,
 +                                    "buffer process inc filtered start=" + startCntr +
 +                                        ", lastProc=" + lastProc +
 +                                        " pos=" + pos +
 +                                        ", filtered=" + filtered +
 +                                        " topVer=" + entry0.topologyVersion());
 +                            }
 +
                              pos = i;
                          }
                          else

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

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