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;
