You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ag...@apache.org on 2017/05/24 17:27:25 UTC
[41/41] ignite git commit: Merge branch master into ignite-gg-12163
Merge branch master into ignite-gg-12163
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/b84df567
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/b84df567
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/b84df567
Branch: refs/heads/ignite-5267
Commit: b84df567696454141507b4f5959878ca379c2421
Parents: dc3450e 8c75e4d
Author: Alexey Goncharuk <al...@gmail.com>
Authored: Wed May 24 20:25:32 2017 +0300
Committer: Alexey Goncharuk <al...@gmail.com>
Committed: Wed May 24 20:25:32 2017 +0300
----------------------------------------------------------------------
examples/config/filesystem/example-igfs.xml | 4 +
.../examples/datagrid/CacheQueryExample.java | 2 +-
.../store/cassandra/CassandraCacheStore.java | 15 +-
.../ignite/tests/IgnitePersistentStoreTest.java | 62 +-
.../persistence/loadall_blob/ignite-config.xml | 90 +
.../loadall_blob/persistence-settings.xml | 29 +
modules/clients/src/test/config/jdbc-config.xml | 6 -
.../internal/jdbc2/JdbcMetadataSelfTest.java | 5 +-
.../internal/jdbc2/JdbcResultSetSelfTest.java | 24 +-
.../ignite/jdbc/JdbcMetadataSelfTest.java | 4 +-
.../ignite/jdbc/JdbcResultSetSelfTest.java | 121 +-
.../jdbc/suite/IgniteJdbcDriverTestSuite.java | 3 +
.../jdbc/thin/JdbcConnectionSelfTest.java | 195 ++
.../java/org/apache/ignite/IgniteCache.java | 13 +
.../org/apache/ignite/IgniteJdbcThinDriver.java | 312 +++
.../apache/ignite/IgniteSystemProperties.java | 2 +-
.../ignite/binary/BinaryBasicNameMapper.java | 2 +-
.../ignite/cache/query/FieldsQueryCursor.java | 39 +
.../store/jdbc/CacheAbstractJdbcStore.java | 6 +-
.../configuration/AtomicConfiguration.java | 25 +
.../configuration/MemoryConfiguration.java | 3 +-
.../MemoryPolicyConfiguration.java | 4 +-
.../ignite/internal/GridKernalContext.java | 8 +-
.../ignite/internal/GridKernalContextImpl.java | 12 +-
.../apache/ignite/internal/IgniteKernal.java | 6 +-
.../org/apache/ignite/internal/IgnitionEx.java | 1 +
.../internal/binary/BinaryClassDescriptor.java | 1 +
.../ignite/internal/binary/BinaryContext.java | 58 +-
.../internal/binary/BinaryWriterExImpl.java | 16 +-
.../GridClientOptimizedMarshaller.java | 2 +-
.../GridClientZipOptimizedMarshaller.java | 2 +-
.../internal/jdbc/thin/JdbcConnection.java | 529 +++++
.../ignite/internal/jdbc/thin/JdbcTcpIo.java | 207 ++
.../ignite/internal/jdbc2/JdbcConnection.java | 3 +-
.../managers/communication/GridIoManager.java | 366 ++-
.../communication/GridIoMessageFactory.java | 2 +
.../communication/IgniteIoTestMessage.java | 362 ++-
.../managers/indexing/GridIndexingManager.java | 19 +-
.../optimized/OptimizedClassDescriptor.java | 2 +-
.../optimized/OptimizedMarshaller.java | 2 +-
.../marshaller/optimized/package-info.java | 22 +
.../mem/unsafe/UnsafeMemoryProvider.java | 18 +-
.../pagemem/impl/PageMemoryNoStoreImpl.java | 22 +-
.../processors/cache/GridCacheMapEntry.java | 4 +-
.../processors/cache/IgniteCacheProxy.java | 22 +-
.../processors/cache/QueryCursorImpl.java | 19 +-
.../IgniteCacheDatabaseSharedManager.java | 29 +-
.../cache/database/tree/BPlusTree.java | 64 +-
.../cache/query/GridCacheQueryManager.java | 32 +-
.../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 ----
.../platform/cache/PlatformCache.java | 28 +-
.../processors/query/GridQueryIndexing.java | 100 +-
.../processors/query/GridQueryProcessor.java | 317 +--
.../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 +-
.../processors/query/schema/SchemaKey.java | 59 -
.../message/SchemaProposeDiscoveryMessage.java | 7 +-
.../operation/SchemaAbstractOperation.java | 27 +-
.../operation/SchemaIndexAbstractOperation.java | 7 +-
.../operation/SchemaIndexCreateOperation.java | 8 +-
.../operation/SchemaIndexDropOperation.java | 7 +-
.../handlers/GridRestCommandHandlerAdapter.java | 3 +
.../handlers/cache/GridCacheCommandHandler.java | 2 +-
.../handlers/query/QueryCommandHandler.java | 13 +-
.../ignite/internal/util/IgniteUtils.java | 17 +
.../apache/ignite/marshaller/Marshaller.java | 3 -
.../ignite/marshaller/jdk/JdkMarshaller.java | 5 +-
.../spi/indexing/IndexingQueryFilter.java | 8 +-
.../apache/ignite/spi/indexing/IndexingSpi.java | 17 +-
.../spi/indexing/noop/NoopIndexingSpi.java | 6 +-
modules/core/src/test/config/example-cache.xml | 5 +-
.../src/test/config/spring-start-nodes-attr.xml | 4 +-
.../core/src/test/config/spring-start-nodes.xml | 4 +-
.../config/websession/example-cache-base.xml | 5 +-
.../IgniteExternalizableAbstractTest.java | 15 +-
...dbcPojoStoreOptimizedMarshallerSelfTest.java | 31 -
...ptimizedMarshallerWithSqlEscapeSelfTest.java | 28 -
.../apache/ignite/igfs/IgfsPathSelfTest.java | 7 +-
.../internal/GridLifecycleAwareSelfTest.java | 3 +-
.../BinarySimpleNameTestPropertySelfTest.java | 17 +
.../managers/GridManagerStopSelfTest.java | 3 +-
.../GridDiscoveryManagerAttributesSelfTest.java | 2 +-
.../optimized/OptimizedMarshallerTest.java | 8 +
.../marshaller/optimized/package-info.java | 22 +
.../pagemem/impl/PageMemoryNoLoadSelfTest.java | 31 +-
.../AtomicCacheAffinityConfigurationTest.java | 175 ++
.../CacheStartupInDeploymentModesTest.java | 37 -
.../cache/GridCacheEntryMemorySizeSelfTest.java | 2 +-
...ridCacheStoreManagerDeserializationTest.java | 4 +-
.../cache/GridCacheVersionSelfTest.java | 7 +-
.../IgniteTxExceptionAbstractSelfTest.java | 6 +-
.../distributed/CacheAffinityEarlyTest.java | 7 +-
.../CacheGetFutureHangsSelfTest.java | 6 +-
.../IgniteCacheCreatePutMultiNodeSelfTest.java | 7 +-
.../distributed/IgniteCacheCreatePutTest.java | 7 +-
.../IgniteCachePartitionLossPolicySelfTest.java | 1 +
.../cache/query/IndexingSpiQuerySelfTest.java | 14 +-
.../cache/query/IndexingSpiQueryTxSelfTest.java | 6 +-
.../CacheEntryProcessorNonSerializableTest.java | 5 +-
.../igfs/IgfsAbstractBaseSelfTest.java | 10 -
.../processors/igfs/IgfsFileInfoSelfTest.java | 16 +-
.../IgfsPrimaryOptimziedMarshallerSelfTest.java | 28 -
.../odbc/OdbcProcessorValidationSelfTest.java | 182 --
.../SqlListenerProcessorValidationSelfTest.java | 184 ++
.../service/ClosureServiceClientsNodesTest.java | 4 +-
...namicProxySerializationMultiJvmSelfTest.java | 13 -
.../GridMarshallerPerformanceTest.java | 8 +-
.../IgniteMessagingWithClientTest.java | 4 +-
...pClientDiscoveryMarshallerCheckSelfTest.java | 4 +-
.../TcpDiscoveryMarshallerCheckSelfTest.java | 4 +-
.../ignite/testframework/GridTestUtils.java | 2 +-
.../config/GridTestProperties.java | 3 +-
.../configvariations/ConfigVariations.java | 14 +-
.../testframework/junits/GridAbstractTest.java | 33 +
.../junits/IgniteTestResources.java | 8 +-
.../multijvm/IgniteCacheProcessProxy.java | 8 +
...naryObjectsTxDeadlockDetectionTestSuite.java | 37 -
.../ignite/testsuites/IgniteBasicTestSuite.java | 4 +-
.../testsuites/IgniteBinaryBasicTestSuite.java | 14 +-
.../IgniteBinaryCacheFullApiTestSuite.java | 37 -
.../testsuites/IgniteBinaryCacheTestSuite.java | 4 -
...ObjectsCacheDataStructuresSelfTestSuite.java | 42 -
...BinaryObjectsCacheExpiryPolicyTestSuite.java | 38 -
...gniteBinaryObjectsCacheRestartTestSuite.java | 37 -
.../IgniteBinaryObjectsCacheTestSuite2.java | 37 -
.../IgniteBinaryObjectsCacheTestSuite3.java | 2 -
.../IgniteBinaryObjectsCacheTestSuite4.java | 37 -
...IgniteBinaryObjectsComputeGridTestSuite.java | 4 -
.../IgniteCacheDataStructuresSelfTestSuite.java | 3 +
.../ignite/testsuites/IgniteCacheTestSuite.java | 4 -
...teBasicConfigVariationsFullApiTestSuite.java | 2 +-
.../ignite/testsuites/IgniteIgfsTestSuite.java | 3 -
.../testsuites/IgniteKernalSelfTestSuite.java | 4 -
.../IgniteMarshallerSelfTestSuite.java | 8 +-
...essagingConfigVariationFullApiTestSuite.java | 2 +-
...ServiceConfigVariationsFullApiTestSuite.java | 2 +-
.../webapp/META-INF/ignite-webapp-config.xml | 15 +-
.../test/config/hadoop-fs-open-test/grid-0.xml | 3 +-
.../test/config/hadoop-fs-open-test/grid-1.xml | 3 +-
.../test/config/hadoop-fs-open-test/grid-2.xml | 3 +-
.../test/config/igfs-cli-config-dual-async.xml | 3 +-
.../test/config/igfs-cli-config-dual-sync.xml | 3 +-
.../src/test/config/igfs-cli-config-primary.xml | 3 +-
.../src/test/config/igfs-cli-config-proxy.xml | 3 +-
.../IgniteHadoopFileSystemAbstractSelfTest.java | 4 +-
.../cache/query/GridCacheTwoStepQuery.java | 84 +-
.../processors/cache/query/QueryTable.java | 164 ++
.../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 | 2212 +++---------------
.../query/h2/database/H2PkHashIndex.java | 4 +-
.../query/h2/database/H2TreeIndex.java | 4 +-
.../query/h2/ddl/DdlStatementsProcessor.java | 25 +-
.../query/h2/opt/GridH2CollocationModel.java | 6 +-
.../query/h2/opt/GridH2IndexBase.java | 14 +-
.../processors/query/h2/opt/GridH2Table.java | 177 +-
.../query/h2/opt/GridH2TreeIndex.java | 2 +-
.../query/h2/opt/GridLuceneIndex.java | 15 +-
.../query/h2/sql/GridSqlDropIndex.java | 14 +-
.../query/h2/sql/GridSqlQueryParser.java | 2 +-
.../query/h2/sql/GridSqlQuerySplitter.java | 25 +-
.../query/h2/twostep/GridMapQueryExecutor.java | 23 +-
.../h2/twostep/GridReduceQueryExecutor.java | 272 +--
.../h2/twostep/msg/GridH2QueryRequest.java | 13 +-
.../twostep/msg/GridH2ValueMessageFactory.java | 4 +
.../cache/GridCacheCrossCacheQuerySelfTest.java | 12 +-
.../cache/IgniteCacheNoClassQuerySelfTest.java | 4 +-
.../cache/SqlFieldsQuerySelfTest.java | 12 +-
.../DynamicIndexAbstractBasicSelfTest.java | 26 +-
.../DynamicIndexAbstractConcurrentSelfTest.java | 74 +-
.../cache/index/SchemaExchangeSelfTest.java | 2 +-
.../query/IgniteQueryDedicatedPoolTest.java | 6 +-
.../query/IgniteSqlSegmentedIndexSelfTest.java | 25 +
.../h2/GridIndexingSpiAbstractSelfTest.java | 140 +-
.../h2/sql/AbstractH2CompareQueryTest.java | 4 +-
.../query/h2/sql/GridQueryParsingTest.java | 6 +-
.../FetchingQueryCursorStressTest.java | 4 +-
.../IgniteBinaryCacheQueryTestSuite.java | 4 -
.../IgniteBinaryCacheQueryTestSuite2.java | 4 -
.../IgniteBinaryCacheQueryTestSuite3.java | 39 -
.../IgniteBinaryCacheQueryTestSuite4.java | 39 -
.../core/include/ignite/cache/query/query_sql.h | 2 +
.../ignite/cache/query/query_sql_fields.h | 3 +
.../cpp/odbc/include/ignite/odbc/message.h | 10 +
.../Cache/Query/CacheLinqTest.cs | 36 +-
.../Cache/Query/CacheQueriesTest.cs | 60 +-
.../Apache.Ignite.Core.Tests/MarshallerTest.cs | 2 +-
.../Cache/Query/SqlFieldsQuery.cs | 29 +-
.../Apache.Ignite.Core/Cache/Query/SqlQuery.cs | 31 +
.../Apache.Ignite.Core/Impl/Cache/CacheImpl.cs | 3 +
.../Apache.Ignite.Linq/CacheExtensions.cs | 10 +
.../Impl/CacheFieldsQueryExecutor.cs | 42 +-
.../Apache.Ignite.Linq/Impl/CacheQueryable.cs | 3 +-
.../dotnet/Apache.Ignite.Linq/QueryOptions.cs | 23 +
modules/spark/pom.xml | 6 -
.../spring/SpringTransactionManager.java | 13 +
.../GridSpringBeanSerializationSelfTest.java | 15 +-
.../GridSpringTransactionManagerSelfTest.java | 45 +
.../webapp2/META-INF/ignite-webapp-config.xml | 15 +-
.../ignite-int-max-values-onheap-config.xml | 4 +-
modules/yardstick/config/ignite-jdbc-config.xml | 4 +-
parent/pom.xml | 2 +-
234 files changed, 8710 insertions(+), 5305 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/b84df567/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/b84df567/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/b84df567/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoMessageFactory.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/b84df567/modules/core/src/main/java/org/apache/ignite/internal/pagemem/impl/PageMemoryNoStoreImpl.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/b84df567/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/b84df567/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxy.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/b84df567/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/IgniteCacheDatabaseSharedManager.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/b84df567/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/tree/BPlusTree.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/b84df567/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryIndexing.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryIndexing.java
index f600066,4b9c0e2..192ff8a
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryIndexing.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryIndexing.java
@@@ -237,17 -231,19 +231,17 @@@ public interface GridQueryIndexing
/**
* Rebuilds all indexes of given type from hash index.
*
- * @param spaceName Space name.
+ * @param cacheName Cache name.
- * @param type Type descriptor.
* @throws IgniteCheckedException If failed.
*/
- public void rebuildIndexesFromHash(String spaceName) throws IgniteCheckedException;
- public void rebuildIndexesFromHash(String cacheName, GridQueryTypeDescriptor type) throws IgniteCheckedException;
++ public void rebuildIndexesFromHash(String cacheName) throws IgniteCheckedException;
/**
* Marks all indexes of given type for rebuild from hash index, making them unusable until rebuild finishes.
*
- * @param spaceName Space name.
+ * @param cacheName Cache name.
- * @param type Type descriptor.
*/
- public void markForRebuildFromHash(String spaceName);
- public void markForRebuildFromHash(String cacheName, GridQueryTypeDescriptor type);
++ public void markForRebuildFromHash(String cacheName);
/**
* Returns backup filter.
http://git-wip-us.apache.org/repos/asf/ignite/blob/b84df567/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
index 62242f1,a40c9e9..5245cf8
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
@@@ -693,17 -696,15 +695,17 @@@ public class GridQueryProcessor extend
QueryTypeDescriptorImpl oldDesc = tblTypMap.put(desc.tableName(), desc);
if (oldDesc != null)
- throw new IgniteException("Duplicate table name [cache=" + space +
+ throw new IgniteException("Duplicate table name [cache=" + cacheName +
- ", tblName=" + desc.tableName() + ", type1=" + desc.name() + ", type2=" + oldDesc.name() + ']');
+ ",tblName=" + desc.tableName() +
+ ", type1=" + desc.name() + ", type2=" + oldDesc.name() + ']');
for (String idxName : desc.indexes().keySet()) {
oldDesc = idxTypMap.put(idxName, desc);
if (oldDesc != null)
- throw new IgniteException("Duplicate index name [cache=" + space +
+ throw new IgniteException("Duplicate index name [cache=" + cacheName +
- ", idxName=" + idxName + ", type1=" + desc.name() + ", type2=" + oldDesc.name() + ']');
+ ",idxName=" + idxName +
+ ", type1=" + desc.name() + ", type2=" + oldDesc.name() + ']');
}
}
@@@ -1454,12 -1460,12 +1461,12 @@@
final GridWorkerFuture<Object> fut = new GridWorkerFuture<>();
- idx.markForRebuildFromHash(space);
- idx.markForRebuildFromHash(cacheName, desc);
++ idx.markForRebuildFromHash(cacheName);
GridWorker w = new GridWorker(ctx.igniteInstanceName(), "index-rebuild-worker", log) {
@Override protected void body() {
try {
- idx.rebuildIndexesFromHash(space);
- idx.rebuildIndexesFromHash(cacheName, desc);
++ idx.rebuildIndexesFromHash(cacheName);
fut.onDone();
}
@@@ -1467,8 -1473,7 +1474,8 @@@
fut.onDone(e);
}
catch (Throwable e) {
- U.error(log, "Failed to rebuild indexes for type [space=" + space +
- log.error("Failed to rebuild indexes for type: " + desc.name(), e);
++ U.error(log, "Failed to rebuild indexes for type [cacheName=" + cacheName +
+ ", name=" + desc.name() + ']', e);
fut.onDone(e);
http://git-wip-us.apache.org/repos/asf/ignite/blob/b84df567/modules/core/src/main/java/org/apache/ignite/internal/processors/query/QueryUtils.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/b84df567/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
index c3de1f7,4e9d0c7..d57c0f1
mode 100755,100644..100755
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
http://git-wip-us.apache.org/repos/asf/ignite/blob/b84df567/modules/core/src/test/java/org/apache/ignite/testframework/config/GridTestProperties.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/b84df567/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/b84df567/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
----------------------------------------------------------------------
diff --cc modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
index 5f16fdd,8e6eeba..9de971a
--- a/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
+++ b/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
@@@ -163,42 -138,14 +139,13 @@@ import org.h2.command.Prepared
import org.h2.command.dml.Insert;
import org.h2.engine.Session;
import org.h2.engine.SysProperties;
-import org.h2.index.Cursor;
import org.h2.index.Index;
- import org.h2.jdbc.JdbcConnection;
import org.h2.jdbc.JdbcPreparedStatement;
import org.h2.jdbc.JdbcStatement;
- import org.h2.message.DbException;
- import org.h2.mvstore.cache.CacheLongKeyLIRS;
- import org.h2.result.SearchRow;
- import org.h2.result.SimpleRow;
- import org.h2.result.SortOrder;
import org.h2.server.web.WebServer;
- import org.h2.table.Column;
import org.h2.table.IndexColumn;
- import org.h2.table.TableBase;
import org.h2.tools.Server;
import org.h2.util.JdbcUtils;
- import org.h2.value.DataType;
- import org.h2.value.Value;
- import org.h2.value.ValueArray;
- import org.h2.value.ValueBoolean;
- import org.h2.value.ValueByte;
- import org.h2.value.ValueBytes;
- import org.h2.value.ValueDate;
- import org.h2.value.ValueDecimal;
- import org.h2.value.ValueDouble;
- import org.h2.value.ValueFloat;
- import org.h2.value.ValueGeometry;
- import org.h2.value.ValueInt;
- import org.h2.value.ValueJavaObject;
- import org.h2.value.ValueLong;
- import org.h2.value.ValueNull;
- import org.h2.value.ValueShort;
- import org.h2.value.ValueString;
- import org.h2.value.ValueTime;
- import org.h2.value.ValueTimestamp;
- import org.h2.value.ValueUuid;
import org.jetbrains.annotations.Nullable;
import org.jsr166.ConcurrentHashMap8;
@@@ -2076,16 -1816,6 +1816,21 @@@ public class IgniteH2Indexing implement
}
/**
- * Gets database schema from space.
++ * Gets collection of table for given schema name.
+ *
- * @param space Space name. {@code null} would be converted to an empty string.
- * @return Schema name. Should not be null since we should not fail for an invalid space name.
++ * @param cacheName Schema name.
++ * @return Collection of table descriptors.
+ */
- private String schema(String space) {
- return emptyIfNull(space2schema.get(emptyIfNull(space)));
++ private Collection<H2TableDescriptor> tables(String cacheName) {
++ H2Schema s = schemas.get(schema(cacheName));
++
++ if (s == null)
++ return Collections.emptySet();
++
++ return s.tables().values();
+ }
+
+ /**
* Called periodically by {@link GridTimeoutProcessor} to clean up the {@link #stmtCache}.
*/
private void cleanupStatementCache() {
@@@ -2121,59 -1851,79 +1866,59 @@@
/**
* Rebuild indexes from hash index.
*
- * @param spaceName Space name.
+ * @param cacheName Cache name.
- * @param type Type descriptor.
* @throws IgniteCheckedException If failed.
*/
- @Override public void rebuildIndexesFromHash(String spaceName) throws IgniteCheckedException {
- int cacheId = CU.cacheId(spaceName);
- @SuppressWarnings("SynchronizationOnLocalVariableOrMethodParameter")
- @Override public void rebuildIndexesFromHash(String cacheName,
- GridQueryTypeDescriptor type) throws IgniteCheckedException {
- H2TableDescriptor tbl = tableDescriptor(type.name(), cacheName);
-
- if (tbl == null)
- return;
-
- assert tbl.table() != null;
-
- assert tbl.table().rebuildFromHashInProgress();
-
- H2PkHashIndex hashIdx = tbl.primaryKeyHashIndex();
-
- Cursor cursor = hashIdx.find((Session)null, null, null);
-
- int cacheId = CU.cacheId(tbl.schema().cacheName());
++ @Override public void rebuildIndexesFromHash(String cacheName) throws IgniteCheckedException {
++ int cacheId = CU.cacheId(cacheName);
GridCacheContext cctx = ctx.cache().context().cacheContext(cacheId);
- while (cursor.next()) {
- CacheDataRow dataRow = (CacheDataRow)cursor.get();
+ IgniteCacheOffheapManager offheapMgr = cctx.isNear() ? cctx.near().dht().context().offheap() : cctx.offheap();
- boolean done = false;
+ for (int p = 0; p < cctx.affinity().partitions(); p++) {
+ try (GridCloseableIterator<KeyCacheObject> keyIter = offheapMgr.keysIterator(p)) {
+ while (keyIter.hasNext()) {
+ cctx.shared().database().checkpointReadLock();
- while (!done) {
- GridCacheEntryEx entry = cctx.cache().entryEx(dataRow.key());
-
- try {
- synchronized (entry) {
- // TODO : How to correctly get current value and link here?
-
- GridH2Row row = tbl.table().rowDescriptor().createRow(entry.key(), entry.partition(),
- dataRow.value(), entry.version(), entry.expireTime());
-
- row.link(dataRow.link());
+ try {
+ KeyCacheObject key = keyIter.next();
- List<Index> indexes = tbl.table().getAllIndexes();
+ while (true) {
+ try {
+ GridCacheEntryEx entry = cctx.isNear() ?
+ cctx.near().dht().entryEx(key) : cctx.cache().entryEx(key);
- for (int i = 2; i < indexes.size(); i++) {
- Index idx = indexes.get(i);
+ entry.ensureIndexed();
- if (idx instanceof H2TreeIndex)
- ((H2TreeIndex)idx).put(row);
+ break;
+ }
+ catch (GridCacheEntryRemovedException ignore) {
+ // Retry.
+ }
+ catch (GridDhtInvalidPartitionException ignore) {
+ break;
+ }
}
-
- done = true;
}
- }
- catch (GridCacheEntryRemovedException e) {
- // No-op
+ finally {
+ cctx.shared().database().checkpointReadUnlock();
+ }
}
}
-
}
- for (TableDescriptor tblDesc : tables(spaceName))
- tblDesc.tbl.markRebuildFromHashInProgress(false);
- tbl.table().markRebuildFromHashInProgress(false);
++ for (H2TableDescriptor tblDesc : tables(cacheName))
++ tblDesc.table().markRebuildFromHashInProgress(false);
}
/** {@inheritDoc} */
- @Override public void markForRebuildFromHash(String spaceName) {
- for (TableDescriptor tblDesc : tables(spaceName)) {
- assert tblDesc.tbl != null;
- @Override public void markForRebuildFromHash(String cacheName, GridQueryTypeDescriptor type) {
- H2TableDescriptor tbl = tableDescriptor(type.name(), cacheName);
++ @Override public void markForRebuildFromHash(String cacheName) {
++ for (H2TableDescriptor tblDesc : tables(cacheName)) {
++ assert tblDesc.table() != null;
- tblDesc.tbl.markRebuildFromHashInProgress(true);
- if (tbl == null)
- return;
-
- assert tbl.table() != null;
-
- tbl.table().markRebuildFromHashInProgress(true);
++ tblDesc.table().markRebuildFromHashInProgress(true);
+ }
}
/**