IGNITE-10457: MVCC TX: Fix MvccProcessor initialization on recovery from store. 
This closes #5538.


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

Branch: refs/heads/ignite-10044
Commit: cdba7d9a1a1d0e2f69aafaeeef3a2746bc69b072
Parents: 7251718
Author: Igor Seliverstov <[email protected]>
Authored: Tue Dec 4 17:40:04 2018 +0300
Committer: Igor Seliverstov <[email protected]>
Committed: Tue Dec 4 17:40:04 2018 +0300

----------------------------------------------------------------------
 .../processors/cache/GridCacheProcessor.java        | 10 +++++++---
 .../processors/cache/mvcc/MvccProcessorImpl.java    |  6 ++++++
 .../persistence/DatabaseLifecycleListener.java      | 16 ++++++++++------
 .../persistence/GridCacheDatabaseSharedManager.java |  8 +++++---
 .../query/h2/GridIndexRebuildSelfTest.java          |  2 +-
 5 files changed, 29 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/cdba7d9a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
index 0870d1b..b49c697 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheProcessor.java
@@ -5476,7 +5476,9 @@ public class GridCacheProcessor extends 
GridProcessorAdapter {
         }
 
         /** {@inheritDoc} */
-        @Override public void 
afterBinaryMemoryRestore(GridCacheDatabaseSharedManager.RestoreBinaryState 
binaryState) throws IgniteCheckedException {
+        @Override public void afterBinaryMemoryRestore(
+            IgniteCacheDatabaseSharedManager mgr,
+            GridCacheDatabaseSharedManager.RestoreBinaryState restoreState) 
throws IgniteCheckedException {
             for (DynamicCacheDescriptor cacheDescriptor : persistentCaches()) {
                 startCacheInRecoveryMode(cacheDescriptor);
 
@@ -5485,8 +5487,10 @@ public class GridCacheProcessor extends 
GridProcessorAdapter {
         }
 
         /** {@inheritDoc} */
-        @Override public void 
afterLogicalUpdatesApplied(GridCacheDatabaseSharedManager.RestoreLogicalState 
logicalState) throws IgniteCheckedException {
-            restorePartitionStates(cacheGroups(), 
logicalState.partitionRecoveryStates());
+        @Override public void afterLogicalUpdatesApplied(
+            IgniteCacheDatabaseSharedManager mgr,
+            GridCacheDatabaseSharedManager.RestoreLogicalState restoreState) 
throws IgniteCheckedException {
+            restorePartitionStates(cacheGroups(), 
restoreState.partitionRecoveryStates());
         }
 
         /**

http://git-wip-us.apache.org/repos/asf/ignite/blob/cdba7d9a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/mvcc/MvccProcessorImpl.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/mvcc/MvccProcessorImpl.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/mvcc/MvccProcessorImpl.java
index 3ea8f4c..7f386d8 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/mvcc/MvccProcessorImpl.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/mvcc/MvccProcessorImpl.java
@@ -80,6 +80,7 @@ import 
org.apache.ignite.internal.processors.cache.mvcc.txlog.TxLog;
 import org.apache.ignite.internal.processors.cache.mvcc.txlog.TxState;
 import org.apache.ignite.internal.processors.cache.persistence.CacheDataRow;
 import 
org.apache.ignite.internal.processors.cache.persistence.DatabaseLifecycleListener;
+import 
org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager;
 import 
org.apache.ignite.internal.processors.cache.persistence.IgniteCacheDatabaseSharedManager;
 import 
org.apache.ignite.internal.processors.cache.transactions.IgniteInternalTx;
 import org.apache.ignite.internal.processors.cache.tree.mvcc.data.MvccDataRow;
@@ -347,6 +348,11 @@ public class MvccProcessorImpl extends 
GridProcessorAdapter implements MvccProce
     /** {@inheritDoc} */
     @Override public void 
beforeBinaryMemoryRestore(IgniteCacheDatabaseSharedManager mgr) throws 
IgniteCheckedException {
         txLogPageStoreInit(mgr);
+    }
+
+    /** {@inheritDoc} */
+    @Override public void 
afterBinaryMemoryRestore(IgniteCacheDatabaseSharedManager mgr,
+        GridCacheDatabaseSharedManager.RestoreBinaryState restoreState) throws 
IgniteCheckedException {
 
         boolean hasMvccCaches = ctx.cache().persistentCaches().stream()
             .anyMatch(c -> c.cacheConfiguration().getAtomicityMode() == 
TRANSACTIONAL_SNAPSHOT);

http://git-wip-us.apache.org/repos/asf/ignite/blob/cdba7d9a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/DatabaseLifecycleListener.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/DatabaseLifecycleListener.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/DatabaseLifecycleListener.java
index 6762109..34ad751 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/DatabaseLifecycleListener.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/DatabaseLifecycleListener.java
@@ -51,20 +51,24 @@ public interface DatabaseLifecycleListener {
     /**
      * Callback executed when binary memory has fully restored and WAL logging 
is resumed.
      *
-     * @param binaryState Result of binary recovery.
+     *
+     * @param mgr
+     * @param restoreState Result of binary recovery.
      * @throws IgniteCheckedException If failed.
      */
-    public default void 
afterBinaryMemoryRestore(GridCacheDatabaseSharedManager.RestoreBinaryState 
binaryState)
-        throws IgniteCheckedException {}
+    public default void 
afterBinaryMemoryRestore(IgniteCacheDatabaseSharedManager mgr,
+        GridCacheDatabaseSharedManager.RestoreBinaryState restoreState) throws 
IgniteCheckedException {}
 
     /**
      * Callback executed when all logical updates were applied and page memory 
become to fully consistent state.
      *
-     * @param logicalState Result of logical recovery.
+     *
+     * @param mgr
+     * @param restoreState Result of logical recovery.
      * @throws IgniteCheckedException If failed.
      */
-    public default void 
afterLogicalUpdatesApplied(GridCacheDatabaseSharedManager.RestoreLogicalState 
logicalState)
-        throws IgniteCheckedException {}
+    public default void 
afterLogicalUpdatesApplied(IgniteCacheDatabaseSharedManager mgr,
+        GridCacheDatabaseSharedManager.RestoreLogicalState restoreState) 
throws IgniteCheckedException {}
 
     /**
      * Callback executed when all physical updates are applied and we are 
ready to write new physical records

http://git-wip-us.apache.org/repos/asf/ignite/blob/cdba7d9a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheDatabaseSharedManager.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheDatabaseSharedManager.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheDatabaseSharedManager.java
index 9a03337..95a99fb 100755
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheDatabaseSharedManager.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheDatabaseSharedManager.java
@@ -944,7 +944,7 @@ public class GridCacheDatabaseSharedManager extends 
IgniteCacheDatabaseSharedMan
             cctx.wal().resumeLogging(restored);
 
             for (DatabaseLifecycleListener lsnr : 
getDatabaseListeners(cctx.kernalContext()))
-                lsnr.afterBinaryMemoryRestore(binaryState);
+                lsnr.afterBinaryMemoryRestore(this, binaryState);
 
             if (log.isInfoEnabled())
                 log.info("Binary recovery performed in " + 
(System.currentTimeMillis() - time) + " ms.");
@@ -2472,7 +2472,7 @@ public class GridCacheDatabaseSharedManager extends 
IgniteCacheDatabaseSharedMan
                 ", time=" + (U.currentTimeMillis() - start) + " ms]");
 
         for (DatabaseLifecycleListener lsnr : 
getDatabaseListeners(cctx.kernalContext()))
-            lsnr.afterLogicalUpdatesApplied(restoreLogicalState);
+            lsnr.afterLogicalUpdatesApplied(this, restoreLogicalState);
 
         return restoreLogicalState;
     }
@@ -4713,7 +4713,9 @@ public class GridCacheDatabaseSharedManager extends 
IgniteCacheDatabaseSharedMan
             cctx.pageStore().initializeForMetastorage();
         }
 
-        @Override public void afterBinaryMemoryRestore(RestoreBinaryState 
binaryState) throws IgniteCheckedException {
+        @Override public void afterBinaryMemoryRestore(
+            IgniteCacheDatabaseSharedManager mgr,
+            RestoreBinaryState restoreState) throws IgniteCheckedException {
             assert metaStorage == null;
 
             metaStorage = createMetastorage(false);

http://git-wip-us.apache.org/repos/asf/ignite/blob/cdba7d9a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/GridIndexRebuildSelfTest.java
----------------------------------------------------------------------
diff --git 
a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/GridIndexRebuildSelfTest.java
 
b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/GridIndexRebuildSelfTest.java
index d8ba060..9afb749 100644
--- 
a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/GridIndexRebuildSelfTest.java
+++ 
b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/query/h2/GridIndexRebuildSelfTest.java
@@ -115,7 +115,7 @@ public class GridIndexRebuildSelfTest extends 
DynamicIndexAbstractSelfTest {
         IgniteEx srv = startServer();
 
         execute(srv, "CREATE TABLE T(k int primary key, v int) WITH 
\"cache_name=T,wrap_value=false," +
-            "atomicity=transactional_snapshot\"");
+            "atomicity=transactional\"");
 
         execute(srv, "CREATE INDEX IDX ON T(v)");
 

Reply via email to