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/29 07:34:01 UTC

[11/12] ignite git commit: Merge remote-tracking branch 'remotes/origin/ignite-5267' into ignite-5075-pds

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

# Conflicts:
#	modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.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
#	modules/pds/src/main/java/org/apache/ignite/internal/processors/cache/database/GridCacheOffheapManager.java


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

Branch: refs/heads/ignite-5075-pds
Commit: 31bdd71ebfa13bc109a6989f9a7d84ef290f359a
Parents: 1379eaa c68b61d
Author: sboikov <sb...@gridgain.com>
Authored: Mon May 29 10:32:42 2017 +0300
Committer: sboikov <sb...@gridgain.com>
Committed: Mon May 29 10:32:42 2017 +0300

----------------------------------------------------------------------
 .../example-persistent-store.xml                |  71 +++++
 examples/pom.xml                                |   7 +
 .../ignite/examples/model/Organization.java     |   9 +
 .../persistentstore/PersistentStoreExample.java |  88 ++++++
 .../PersistentStoreExampleNodeStartup.java      |  29 ++
 .../configuration/IgniteConfiguration.java      |  14 +-
 .../configuration/PersistenceConfiguration.java | 289 ------------------
 .../PersistentStoreConfiguration.java           | 293 +++++++++++++++++++
 .../ignite/internal/MarshallerContextImpl.java  |   6 +-
 .../processors/cache/GridCacheProcessor.java    |  18 +-
 .../GridDhtPartitionsExchangeFuture.java        |  12 +-
 .../processors/query/GridQueryIndexing.java     |   4 +-
 .../processors/query/GridQueryProcessor.java    |  10 +-
 .../processors/query/h2/IgniteH2Indexing.java   |  70 ++---
 modules/pds/pom.xml                             |  49 ++++
 .../GridCacheDatabaseSharedManager.java         |   8 +-
 .../cache/database/GridCacheOffheapManager.java |   5 +-
 .../database/file/FilePageStoreManager.java     |  12 +-
 .../database/wal/FileWriteAheadLogManager.java  | 150 ++++++----
 .../cache/database/wal/RecordSerializer.java    |   2 +-
 .../cache/database/wal/record/HeaderRecord.java |   2 +-
 .../resources/META-INF/classnames.properties    |  28 ++
 ...istentStoreCacheRebalancingAbstractTest.java |   6 +-
 ...tNearCachePutGetWithPersistenceSelfTest.java |   4 +-
 ...ersistentStoreContinuousRestartSelfTest.java |   4 +-
 .../IgnitePersistentStoreDynamicCacheTest.java  |   4 +-
 ...tentStoreMultiNodePutGetRestartSelfTest.java |   4 +-
 .../IgnitePersistentStorePageSizesTest.java     |   4 +-
 ...entStoreRecoveryAfterFileCorruptionTest.java |   6 +-
 ...entStoreRemoveDuringRebalancingSelfTest.java |   4 +-
 ...toreSingleNodePutGetPersistenceSelfTest.java |   4 +-
 ...deWithIndexingPutGetPersistenceSelfTest.java |   4 +-
 .../IgnitePersistentStoreWalTlbSelfTest.java    |   8 +-
 ...ageEvictionDuringPartitionClearSelfTest.java |   4 +-
 .../IgniteDbMultiNodePutGetRestartSelfTest.java |   4 +-
 .../db/IgniteDbPageEvictionSelfTest.java        |   4 +-
 .../db/IgniteDbWholeClusterRestartSelfTest.java |   4 +-
 .../db/RebalancingOnNotStableTopologyTest.java  |   6 +-
 .../cache/database/db/TransactionsHangTest.java |   6 +-
 ...IgniteCachePageStoreIntegrationSelfTest.java |   4 +-
 .../file/IgniteNoActualWalHistorySelfTest.java  |   6 +-
 .../IgniteWalDirectoriesConfigurationTest.java  |   6 +-
 .../IgniteWalHistoryReservationsSelfTest.java   |   4 +-
 .../db/file/IgniteWalRecoverySelfTest.java      |   7 +-
 .../IgniteWalRecoverySeveralRestartsTest.java   |   6 +-
 .../PageStoreCheckpointSimulationSelfTest.java  |   6 +-
 .../db/file/PageStoreEvictionSelfTest.java      |   4 +-
 .../file/WalRecoveryTxLogicalRecordsTest.java   |   6 +-
 .../GridChangeGlobalStateAbstractTest.java      |   8 +-
 .../extended/GridActivateExtensionTest.java     |   8 +-
 50 files changed, 833 insertions(+), 488 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/31bdd71e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/31bdd71e/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/distributed/dht/preloader/GridDhtPartitionsExchangeFuture.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/31bdd71e/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 d5720c0,5245cf8..9fe84cb
--- 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
@@@ -1501,7 -1449,10 +1501,9 @@@ public class GridQueryProcessor extend
       * @param desc Type descriptor.
       * @return Future that will be completed when rebuilding of all indexes is finished.
       */
-     private IgniteInternalFuture<Object> rebuildIndexesFromHash(@Nullable final String cacheName, @Nullable final QueryTypeDescriptorImpl desc) {
 -    private IgniteInternalFuture<Object> rebuildIndexesFromHash(
 -        @Nullable final String cacheName,
++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/31bdd71e/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 2556312,9de971a..0078ba9
--- 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
@@@ -1876,43 -1874,42 +1876,36 @@@ public class IgniteH2Indexing implement
  
          GridCacheContext cctx = ctx.cache().context().cacheContext(cacheId);
  
 -        IgniteCacheOffheapManager offheapMgr = cctx.isNear() ? cctx.near().dht().context().offheap() : cctx.offheap();
 +        while (cursor.next()) {
 +            CacheDataRow dataRow = (CacheDataRow)cursor.get();
  
 -        for (int p = 0; p < cctx.affinity().partitions(); p++) {
 -            try (GridCloseableIterator<KeyCacheObject> keyIter = offheapMgr.keysIterator(p)) {
 -                while (keyIter.hasNext()) {
 -                    cctx.shared().database().checkpointReadLock();
 +            boolean done = false;
  
-             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);
  
 -                                entry.ensureIndexed();
 +                        for (int i = 2; i < indexes.size(); i++) {
 +                            Index idx = indexes.get(i);
  
 -                                break;
 -                            }
 -                            catch (GridCacheEntryRemovedException ignore) {
 -                                // Retry.
 -                            }
 -                            catch (GridDhtInvalidPartitionException ignore) {
 -                                break;
 -                            }
 +                            if (idx instanceof H2TreeIndex)
 +                                ((H2TreeIndex)idx).put(row);
                          }
 +
 +                        done = true;
                      }
 -                    finally {
 -                        cctx.shared().database().checkpointReadUnlock();
 -                    }
 +                }
 +                catch (GridCacheEntryRemovedException e) {
 +                    // No-op
                  }
              }
 -        }
  
-         }
- 
-         tbl.table().markRebuildFromHashInProgress(false);
+         for (H2TableDescriptor tblDesc : tables(cacheName))
+             tblDesc.table().markRebuildFromHashInProgress(false);
      }
  
      /** {@inheritDoc} */

http://git-wip-us.apache.org/repos/asf/ignite/blob/31bdd71e/modules/pds/src/main/java/org/apache/ignite/internal/processors/cache/database/GridCacheDatabaseSharedManager.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/31bdd71e/modules/pds/src/main/java/org/apache/ignite/internal/processors/cache/database/GridCacheOffheapManager.java
----------------------------------------------------------------------
diff --cc modules/pds/src/main/java/org/apache/ignite/internal/processors/cache/database/GridCacheOffheapManager.java
index eacf987,9bced42..be3c5e1
--- a/modules/pds/src/main/java/org/apache/ignite/internal/processors/cache/database/GridCacheOffheapManager.java
+++ b/modules/pds/src/main/java/org/apache/ignite/internal/processors/cache/database/GridCacheOffheapManager.java
@@@ -489,14 -472,17 +489,17 @@@ public class GridCacheOffheapManager ex
       *
       */
      private static class RebalanceIteratorAdapter implements IgniteRebalanceIterator {
+         /** Serial version uid. */
+         private static final long serialVersionUID = 0L;
+ 
 -        /** Cache context. */
 -        private GridCacheContext cctx;
 +        /** Cache group caches. */
 +        private final Set<Integer> cacheGrpCaches;
  
          /** WAL iterator. */
 -        private WALIterator walIt;
 +        private final WALIterator walIt;
  
          /** Partition to scan. */
 -        private int part;
 +        private final int part;
  
          /** */
          private Iterator<DataEntry> entryIt;

http://git-wip-us.apache.org/repos/asf/ignite/blob/31bdd71e/modules/pds/src/main/java/org/apache/ignite/internal/processors/cache/database/file/FilePageStoreManager.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/31bdd71e/modules/pds/src/test/java/org/apache/ignite/cache/database/IgnitePersistentStoreMultiNodePutGetRestartSelfTest.java
----------------------------------------------------------------------