IGNITE-GG-12163 fixes around PartitionDestroy WAL record functionality

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

Branch: refs/heads/ignite-5075-pds
Commit: 6d3821b92e252ba834da793295400eb8bf6d0813
Parents: 99acdb5
Author: Sergey Chugunov <[email protected]>
Authored: Wed May 17 11:35:47 2017 +0300
Committer: Sergey Chugunov <[email protected]>
Committed: Wed May 17 11:35:47 2017 +0300

----------------------------------------------------------------------
 .../internal/pagemem/wal/record/delta/MetaPageInitRecord.java | 5 +----
 .../cache/database/GridCacheDatabaseSharedManager.java        | 7 +------
 .../processors/cache/database/GridCacheOffheapManager.java    | 3 +++
 .../cache/database/wal/serializer/RecordV1Serializer.java     | 2 +-
 4 files changed, 6 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/6d3821b9/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageInitRecord.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageInitRecord.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageInitRecord.java
index 3d351a2..5c99d54 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageInitRecord.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/wal/record/delta/MetaPageInitRecord.java
@@ -21,7 +21,6 @@ import org.apache.ignite.IgniteCheckedException;
 import org.apache.ignite.internal.pagemem.PageMemory;
 import org.apache.ignite.internal.processors.cache.database.tree.io.PageIO;
 import org.apache.ignite.internal.processors.cache.database.tree.io.PageMetaIO;
-import 
org.apache.ignite.internal.processors.cache.database.tree.io.PagePartitionMetaIO;
 
 /**
  *
@@ -76,9 +75,7 @@ public class MetaPageInitRecord extends InitNewPageRecord {
 
     /** {@inheritDoc} */
     @Override public void applyDelta(PageMemory pageMem, long pageAddr) throws 
IgniteCheckedException {
-        PageMetaIO io = ioType == PageIO.T_META ?
-            PageMetaIO.VERSIONS.forPage(pageAddr) :
-            PagePartitionMetaIO.VERSIONS.forPage(pageAddr);
+        PageMetaIO io = PageMetaIO.getPageIO(ioType, ioVer);
 
         io.initNewPage(pageAddr, newPageId, pageMem.pageSize());
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/6d3821b9/modules/pds/src/main/java/org/apache/ignite/internal/processors/cache/database/GridCacheDatabaseSharedManager.java
----------------------------------------------------------------------
diff --git 
a/modules/pds/src/main/java/org/apache/ignite/internal/processors/cache/database/GridCacheDatabaseSharedManager.java
 
b/modules/pds/src/main/java/org/apache/ignite/internal/processors/cache/database/GridCacheDatabaseSharedManager.java
index 87c8174..73d6072 100755
--- 
a/modules/pds/src/main/java/org/apache/ignite/internal/processors/cache/database/GridCacheDatabaseSharedManager.java
+++ 
b/modules/pds/src/main/java/org/apache/ignite/internal/processors/cache/database/GridCacheDatabaseSharedManager.java
@@ -74,14 +74,12 @@ import org.apache.ignite.internal.IgniteInternalFuture;
 import org.apache.ignite.internal.IgniteInterruptedCheckedException;
 import org.apache.ignite.internal.mem.DirectMemoryProvider;
 import org.apache.ignite.internal.pagemem.FullPageId;
-import org.apache.ignite.internal.pagemem.PageIdAllocator;
 import org.apache.ignite.internal.pagemem.PageIdUtils;
 import org.apache.ignite.internal.pagemem.PageMemory;
 import org.apache.ignite.internal.pagemem.PageUtils;
 import org.apache.ignite.internal.pagemem.snapshot.SnapshotOperation;
 import org.apache.ignite.internal.pagemem.store.IgnitePageStoreManager;
 import org.apache.ignite.internal.pagemem.store.PageStore;
-import org.apache.ignite.internal.pagemem.wal.IgniteWriteAheadLogManager;
 import org.apache.ignite.internal.pagemem.wal.StorageException;
 import org.apache.ignite.internal.pagemem.wal.WALIterator;
 import org.apache.ignite.internal.pagemem.wal.WALPointer;
@@ -92,7 +90,6 @@ import 
org.apache.ignite.internal.pagemem.wal.record.DataRecord;
 import org.apache.ignite.internal.pagemem.wal.record.MemoryRecoveryRecord;
 import org.apache.ignite.internal.pagemem.wal.record.PageSnapshot;
 import org.apache.ignite.internal.pagemem.wal.record.WALRecord;
-import 
org.apache.ignite.internal.pagemem.wal.record.delta.MetaPageUpdateLastAllocatedIndex;
 import org.apache.ignite.internal.pagemem.wal.record.delta.PageDeltaRecord;
 import 
org.apache.ignite.internal.pagemem.wal.record.delta.PartitionDestroyRecord;
 import 
org.apache.ignite.internal.pagemem.wal.record.delta.PartitionMetaStateRecord;
@@ -104,7 +101,6 @@ import 
org.apache.ignite.internal.processors.cache.database.file.FilePageStoreMa
 import 
org.apache.ignite.internal.processors.cache.database.pagemem.PageMemoryEx;
 import 
org.apache.ignite.internal.processors.cache.database.pagemem.PageMemoryImpl;
 import org.apache.ignite.internal.processors.cache.database.tree.io.PageIO;
-import org.apache.ignite.internal.processors.cache.database.tree.io.PageMetaIO;
 import 
org.apache.ignite.internal.processors.cache.database.tree.io.PagePartitionMetaIO;
 import org.apache.ignite.internal.processors.cache.database.wal.FileWALPointer;
 import 
org.apache.ignite.internal.processors.cache.database.wal.crc.PureJavaCrc32;
@@ -134,7 +130,6 @@ import org.jetbrains.annotations.Nullable;
 import static 
org.apache.ignite.IgniteSystemProperties.IGNITE_PDS_PARTITION_DESTROY_CHECKPOINT_DELAY;
 import static org.apache.ignite.IgniteSystemProperties.IGNITE_PDS_SKIP_CRC;
 import static 
org.apache.ignite.IgniteSystemProperties.IGNITE_WAL_REBALANCE_THRESHOLD;
-import static 
org.apache.ignite.internal.processors.cache.database.tree.util.PageHandler.isWalDeltaRecordNeeded;
 
 /**
  *
@@ -1307,7 +1302,7 @@ public class GridCacheDatabaseSharedManager extends 
IgniteCacheDatabaseSharedMan
                             final int cId = destroyRec.cacheId();
                             final int pId = destroyRec.partitionId();
 
-                            PageMemoryEx pageMem = 
(PageMemoryEx)cctx.cacheContext(cId).memoryPolicy().pageMemory();
+                            PageMemoryEx pageMem = 
getPageMemoryForCacheId(cId);
 
                             pageMem.clearAsync(new P3<Integer, Long, 
Integer>() {
                                 @Override public boolean apply(Integer 
cacheId, Long pageId, Integer tag) {

http://git-wip-us.apache.org/repos/asf/ignite/blob/6d3821b9/modules/pds/src/main/java/org/apache/ignite/internal/processors/cache/database/GridCacheOffheapManager.java
----------------------------------------------------------------------
diff --git 
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
index 74fe886..5253818 100644
--- 
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
@@ -37,6 +37,7 @@ import 
org.apache.ignite.internal.pagemem.wal.record.WALRecord;
 import org.apache.ignite.internal.pagemem.wal.record.delta.MetaPageInitRecord;
 import 
org.apache.ignite.internal.pagemem.wal.record.delta.MetaPageUpdateNextSnapshotId;
 import 
org.apache.ignite.internal.pagemem.wal.record.delta.MetaPageUpdatePartitionDataRecord;
+import 
org.apache.ignite.internal.pagemem.wal.record.delta.PartitionDestroyRecord;
 import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion;
 import org.apache.ignite.internal.processors.cache.CacheObject;
 import org.apache.ignite.internal.processors.cache.GridCacheContext;
@@ -314,6 +315,8 @@ public class GridCacheOffheapManager extends 
IgniteCacheOffheapManagerImpl imple
 
             int tag = pageMemory.invalidate(cctx.cacheId(), p);
 
+            cctx.shared().wal().log(new PartitionDestroyRecord(cctx.cacheId(), 
p));
+
             cctx.shared().pageStore().onPartitionDestroyed(cctx.cacheId(), p, 
tag);
         }
         finally {

http://git-wip-us.apache.org/repos/asf/ignite/blob/6d3821b9/modules/pds/src/main/java/org/apache/ignite/internal/processors/cache/database/wal/serializer/RecordV1Serializer.java
----------------------------------------------------------------------
diff --git 
a/modules/pds/src/main/java/org/apache/ignite/internal/processors/cache/database/wal/serializer/RecordV1Serializer.java
 
b/modules/pds/src/main/java/org/apache/ignite/internal/processors/cache/database/wal/serializer/RecordV1Serializer.java
index 25b69d8..f67f617 100644
--- 
a/modules/pds/src/main/java/org/apache/ignite/internal/processors/cache/database/wal/serializer/RecordV1Serializer.java
+++ 
b/modules/pds/src/main/java/org/apache/ignite/internal/processors/cache/database/wal/serializer/RecordV1Serializer.java
@@ -171,7 +171,7 @@ public class RecordV1Serializer implements RecordSerializer 
{
                 PartitionDestroyRecord partDestroy = 
(PartitionDestroyRecord)record;
 
                 buf.putInt(partDestroy.cacheId());
-                buf.putInt(partDestroy.cacheId());
+                buf.putInt(partDestroy.partitionId());
 
                 break;
 

Reply via email to