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/24 18:05:55 UTC
[32/32] ignite git commit: Merge remote-tracking branch
'remotes/origin/ignite-5075' into ignite-5075-pds
Merge remote-tracking branch 'remotes/origin/ignite-5075' into ignite-5075-pds
# Conflicts:
# modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/IgniteCacheDatabaseSharedManager.java
# modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryIndexing.java
# modules/core/src/main/java/org/apache/ignite/internal/processors/query/GridQueryProcessor.java
# modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/IgniteH2Indexing.java
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/ebfbd994
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/ebfbd994
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/ebfbd994
Branch: refs/heads/ignite-5075-pds
Commit: ebfbd994fc1dc67ca5dab8dd3a2532b124f55927
Parents: bd7fde5 ca176a7
Author: sboikov <sb...@gridgain.com>
Authored: Wed May 24 21:05:07 2017 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Wed May 24 21:05:07 2017 +0300
----------------------------------------------------------------------
examples/config/filesystem/example-igfs.xml | 4 +
.../examples/datagrid/CacheQueryExample.java | 2 +-
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 +
.../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 | 380 ++-
.../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 ----
.../processors/query/GridQueryIndexing.java | 100 +-
.../processors/query/GridQueryProcessor.java | 312 +--
.../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 +
.../paged/PageEvictionMultinodeTest.java | 22 +-
.../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 +-
.../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 | 2206 +++---------------
.../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 | 12 +-
.../processors/query/h2/opt/GridH2Table.java | 149 +-
.../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 | 4 +-
.../query/h2/twostep/GridMapQueryExecutor.java | 10 +-
.../h2/twostep/GridReduceQueryExecutor.java | 31 +-
.../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 -
.../cpp/odbc/include/ignite/odbc/message.h | 10 +
.../Apache.Ignite.Core.Tests/MarshallerTest.cs | 2 +-
.../GridSpringBeanSerializationSelfTest.java | 15 +-
.../webapp2/META-INF/ignite-webapp-config.xml | 15 +-
.../ignite-int-max-values-onheap-config.xml | 4 +-
modules/yardstick/config/ignite-jdbc-config.xml | 4 +-
209 files changed, 7894 insertions(+), 5036 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/ebfbd994/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/ebfbd994/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/ebfbd994/modules/core/src/main/java/org/apache/ignite/internal/pagemem/impl/PageMemoryNoStoreImpl.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/ebfbd994/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheMapEntry.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/ebfbd994/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/IgniteCacheProxy.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/ebfbd994/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/database/IgniteCacheDatabaseSharedManager.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/ebfbd994/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/ebfbd994/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..fbb608b
--- 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;
/**
* 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);
/**
* Returns backup filter.
http://git-wip-us.apache.org/repos/asf/ignite/blob/ebfbd994/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..fb70a1c
--- 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() + ']');
}
}
@@@ -1445,7 -1448,10 +1449,7 @@@
* @param desc Type descriptor.
* @return Future that will be completed when rebuilding of all indexes is finished.
*/
- private IgniteInternalFuture<Object> rebuildIndexesFromHash(@Nullable final String space, @Nullable final QueryTypeDescriptorImpl desc) {
- private IgniteInternalFuture<Object> rebuildIndexesFromHash(
- @Nullable final String cacheName,
- @Nullable final QueryTypeDescriptorImpl desc
- ) {
++ private IgniteInternalFuture<Object> rebuildIndexesFromHash(@Nullable final String cacheName, @Nullable final QueryTypeDescriptorImpl desc) {
if (idx == null)
return new GridFinishedFuture<>(new IgniteCheckedException("Indexing is disabled."));
http://git-wip-us.apache.org/repos/asf/ignite/blob/ebfbd994/modules/core/src/main/java/org/apache/ignite/internal/processors/query/QueryUtils.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/ebfbd994/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/ebfbd994/modules/core/src/test/java/org/apache/ignite/testframework/GridTestUtils.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/ebfbd994/modules/core/src/test/java/org/apache/ignite/testframework/config/GridTestProperties.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/ebfbd994/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/ebfbd994/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 b3b0881,8e6eeba..2556312
--- 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
@@@ -85,8 -71,8 +72,9 @@@ import org.apache.ignite.internal.proce
import org.apache.ignite.internal.processors.cache.GridCacheEntryEx;
import org.apache.ignite.internal.processors.cache.GridCacheEntryRemovedException;
import org.apache.ignite.internal.processors.cache.QueryCursorImpl;
+ import org.apache.ignite.internal.processors.cache.database.CacheDataRow;
import org.apache.ignite.internal.processors.cache.database.tree.io.PageIO;
+import org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtInvalidPartitionException;
import org.apache.ignite.internal.processors.cache.query.GridCacheQueryMarshallable;
import org.apache.ignite.internal.processors.cache.query.GridCacheTwoStepQuery;
import org.apache.ignite.internal.processors.cache.query.IgniteQueryErrorCode;
@@@ -2121,50 -1851,67 +1853,66 @@@ public class IgniteH2Indexing implement
/**
* 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());
GridCacheContext cctx = ctx.cache().context().cacheContext(cacheId);
- IgniteCacheOffheapManager offheapMgr = cctx.group().offheap();
+ while (cursor.next()) {
+ CacheDataRow dataRow = (CacheDataRow)cursor.get();
- for (int p = 0; p < cctx.affinity().partitions(); p++) {
- try (GridCloseableIterator<KeyCacheObject> keyIter = offheapMgr.cacheKeysIterator(cctx.cacheId(), p)) {
- while (keyIter.hasNext()) {
- cctx.shared().database().checkpointReadLock();
+ boolean done = false;
- try {
- KeyCacheObject key = keyIter.next();
+ while (!done) {
+ GridCacheEntryEx entry = cctx.cache().entryEx(dataRow.key());
- while (true) {
- try {
- GridCacheEntryEx entry = cctx.isNear() ?
- cctx.near().dht().entryEx(key) : cctx.cache().entryEx(key);
+ try {
+ synchronized (entry) {
+ // TODO : How to correctly get current value and link here?
- entry.ensureIndexed();
+ GridH2Row row = tbl.table().rowDescriptor().createRow(entry.key(), entry.partition(),
- dataRow.value(), entry.version(), entry.expireTime());
++ dataRow.value(), entry.version(), entry.expireTime());
- break;
- }
- catch (GridCacheEntryRemovedException ignore) {
- // Retry.
- }
- catch (GridDhtInvalidPartitionException ignore) {
- break;
- }
+ row.link(dataRow.link());
+
+ List<Index> indexes = tbl.table().getAllIndexes();
+
+ for (int i = 2; i < indexes.size(); i++) {
+ Index idx = indexes.get(i);
+
+ if (idx instanceof H2TreeIndex)
+ ((H2TreeIndex)idx).put(row);
}
- }
- finally {
- cctx.shared().database().checkpointReadUnlock();
+
+ done = true;
}
}
+ catch (GridCacheEntryRemovedException e) {
+ // No-op
+ }
}
+
}
- for (TableDescriptor tblDesc : tables(spaceName))
- tblDesc.tbl.markRebuildFromHashInProgress(false);
+ tbl.table().markRebuildFromHashInProgress(false);
}
/** {@inheritDoc} */
http://git-wip-us.apache.org/repos/asf/ignite/blob/ebfbd994/modules/indexing/src/main/java/org/apache/ignite/internal/processors/query/h2/database/H2TreeIndex.java
----------------------------------------------------------------------