Repository: ignite
Updated Branches:
  refs/heads/ignite-10779-2 [created] c31aa014e


IGNITE-10779 Unit test for reproducing forgotten counter presence, docs improve


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

Branch: refs/heads/ignite-10779-2
Commit: c31aa014ebae049b13cbed2d73d9dd449681aad6
Parents: dd764c9
Author: Dmitriy Pavlov <[email protected]>
Authored: Wed Dec 26 21:14:47 2018 +0300
Committer: Dmitriy Pavlov <[email protected]>
Committed: Wed Dec 26 21:14:47 2018 +0300

----------------------------------------------------------------------
 .../java/org/apache/ignite/internal/README.md   | 12 ++-
 .../ignite/internal/processors/cache/README.md  |  3 +
 .../CheckpointWriteProgressSupplier.java        |  6 +-
 .../persistence/pagemem/PageMemoryImpl.java     |  2 +-
 .../pagemem/IgniteThrottlingUnitTest.java       | 83 +++++++++++++++++++-
 .../pagemem/PagesWriteThrottleSandboxTest.java  |  5 +-
 .../testsuites/IgnitePdsUnitTestSuite.java      |  1 -
 7 files changed, 102 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/c31aa014/modules/core/src/main/java/org/apache/ignite/internal/README.md
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/README.md 
b/modules/core/src/main/java/org/apache/ignite/internal/README.md
index 8d0f208..0ed8639 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/README.md
+++ b/modules/core/src/main/java/org/apache/ignite/internal/README.md
@@ -3,10 +3,18 @@ Apache Ignite Internals
 
 Contains implementation classes for Apache Ignite.
 
-*Ignite Components*
+### Ignite Components
 
 All internal Ignite components implements 
[GridComponent.java](GridComponent.java) - interface for
 - [processors](processors) and for
 - [managers](managers) - has associated SPI.
 
-Service Provider Interface (SPI) abbreviation is here because Apache Ignite 
was designed as a pluggable product. But Ignite users usually do not define own 
implementations.
\ No newline at end of file
+Service Provider Interface (SPI) abbreviation is here because Apache Ignite 
was designed as a pluggable product. But Ignite users usually do not define own 
implementations.
+
+### Contexts
+Ignite manages its components using Context used to access components and 
binding theirs to each other.
+Component-related context in the Apache Ignite is an implementation of 
[GridKernalContext.java](GridKernalContext.java).
+This context instance is usually referred in code as `kctx` or `ctx`.
+
+Higher-level context, cache shared context is also defined in 
[processors/cache](processors/cache)
+

http://git-wip-us.apache.org/repos/asf/ignite/blob/c31aa014/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/README.md
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/README.md
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/README.md
index f8c50ce..19c5d70 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/README.md
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/README.md
@@ -1,5 +1,8 @@
 Apache Ignite Cache Processors
 ------------------------------
+### Context
+[GridCacheSharedContext.java](GridCacheSharedContext.java) is a class which is 
used for binding cache-related managers.
+This context is shared by all caches defined. This context instance is usually 
referred in code as `sctx`, `cctx` or `ctx`.
 
 ### Native Persistence
 Apache Ignite has its own [Native Persistence](persistence) - Implementation

http://git-wip-us.apache.org/repos/asf/ignite/blob/c31aa014/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/CheckpointWriteProgressSupplier.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/CheckpointWriteProgressSupplier.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/CheckpointWriteProgressSupplier.java
index d20e8d4..596a65f 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/CheckpointWriteProgressSupplier.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/CheckpointWriteProgressSupplier.java
@@ -24,17 +24,17 @@ import java.util.concurrent.atomic.AtomicInteger;
  */
 public interface CheckpointWriteProgressSupplier {
     /**
-     * Counter for written checkpoint pages. Not null only if checkpoint is 
running.
+     * @return Counter for written checkpoint pages. Not <code>null</code> 
only if checkpoint is running.
      */
     public AtomicInteger writtenPagesCounter();
 
     /**
-     * @return Counter for fsynced checkpoint pages. Not null only if 
checkpoint is running.
+     * @return Counter for fsynced checkpoint pages. Not  <code>null</code> 
only if checkpoint is running.
      */
     public AtomicInteger syncedPagesCounter();
 
     /**
-     * @return Counter for evicted pages during current checkpoint. Not null 
only if checkpoint is running.
+     * @return Counter for evicted pages during current checkpoint. Not 
<code>null</code> only if checkpoint is running.
      */
     public AtomicInteger evictedPagesCntr();
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/c31aa014/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/PageMemoryImpl.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/PageMemoryImpl.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/PageMemoryImpl.java
index 31127fc..5b26a34 100755
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/PageMemoryImpl.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/PageMemoryImpl.java
@@ -325,7 +325,7 @@ public class PageMemoryImpl implements PageMemoryEx {
         storeMgr = ctx.pageStore();
         walMgr = ctx.wal();
         encMgr = ctx.kernalContext().encryption();
-        encryptionDisabled = ctx.gridConfig().getEncryptionSpi() instanceof  
NoopEncryptionSpi;
+        encryptionDisabled = ctx.gridConfig().getEncryptionSpi() instanceof 
NoopEncryptionSpi;
 
         assert storeMgr != null;
         assert walMgr != null;

http://git-wip-us.apache.org/repos/asf/ignite/blob/c31aa014/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/IgniteThrottlingUnitTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/IgniteThrottlingUnitTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/IgniteThrottlingUnitTest.java
index 6f504da..744fce9 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/IgniteThrottlingUnitTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/IgniteThrottlingUnitTest.java
@@ -16,21 +16,39 @@
  */
 package org.apache.ignite.internal.processors.cache.persistence.pagemem;
 
+import java.io.File;
 import java.util.Arrays;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.locks.LockSupport;
+import org.apache.ignite.IgniteCheckedException;
 import org.apache.ignite.IgniteLogger;
+import org.apache.ignite.configuration.DataStorageConfiguration;
+import org.apache.ignite.configuration.IgniteConfiguration;
+import org.apache.ignite.internal.GridKernalContext;
+import org.apache.ignite.internal.managers.encryption.GridEncryptionManager;
+import org.apache.ignite.internal.processors.cache.GridCacheProcessor;
+import org.apache.ignite.internal.processors.cache.GridCacheSharedContext;
 import 
org.apache.ignite.internal.processors.cache.persistence.CheckpointLockStateChecker;
 import 
org.apache.ignite.internal.processors.cache.persistence.CheckpointWriteProgressSupplier;
+import 
org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager;
+import 
org.apache.ignite.internal.processors.cache.persistence.file.FilePageStoreManager;
+import 
org.apache.ignite.internal.processors.cache.persistence.filename.PdsFolderSettings;
+import 
org.apache.ignite.internal.processors.cache.persistence.filename.PdsFoldersResolver;
+import 
org.apache.ignite.internal.processors.cache.persistence.wal.FileWriteAheadLogManager;
+import 
org.apache.ignite.internal.processors.subscription.GridInternalSubscriptionProcessor;
 import org.apache.ignite.logger.NullLogger;
+import org.apache.ignite.spi.encryption.noop.NoopEncryptionSpi;
 import org.apache.ignite.testframework.GridTestUtils;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.Timeout;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
+import static org.mockito.Matchers.any;
 import static org.mockito.Matchers.anyString;
 import static org.mockito.Mockito.doAnswer;
 import static org.mockito.Mockito.mock;
@@ -269,7 +287,7 @@ public class IgniteThrottlingUnitTest {
 
             throttle.onMarkDirty(false);
 
-            if(warnings.get()>0)
+            if (warnings.get() > 0)
                 break;
         }
 
@@ -277,4 +295,67 @@ public class IgniteThrottlingUnitTest {
 
         assertTrue(warnings.get() > 0);
     }
+
+    //todo may move this test to upper package
+    @Test
+    public void checkWrittenCounterIsIncreased() throws IgniteCheckedException 
{
+        IgniteConfiguration cfg = new IgniteConfiguration();
+        DataStorageConfiguration dsCfg = new DataStorageConfiguration();
+        cfg.setDataStorageConfiguration(dsCfg);
+
+        //instead of init default SPI
+        cfg.setEncryptionSpi(new NoopEncryptionSpi());
+        cfg.setGridLogger(new NullLogger());
+
+        GridKernalContext kctx = mock(GridKernalContext.class);
+        when(kctx.config()).thenReturn(cfg);
+
+        
when(kctx.internalSubscriptionProcessor()).thenReturn(mock(GridInternalSubscriptionProcessor.class));
+
+        GridEncryptionManager encryptionMgr = 
mock(GridEncryptionManager.class);
+        when(kctx.encryption()).thenReturn(encryptionMgr);
+
+        when(kctx.log(any(Class.class))).thenReturn(cfg.getGridLogger());
+
+
+        GridCacheDatabaseSharedManager.FileLockHolder lockHolder = 
mock(GridCacheDatabaseSharedManager.FileLockHolder.class);
+        PdsFolderSettings folders = mock(PdsFolderSettings.class);
+        when(folders.getLockedFileLockHolder()).thenReturn(lockHolder);
+
+        PdsFoldersResolver foldersRslvr = mock(PdsFoldersResolver.class);
+        when(foldersRslvr.resolveFolders()).thenReturn(folders);
+
+        when(kctx.pdsFolderResolver()).thenReturn(foldersRslvr);
+
+        GridCacheSharedContext sctx = mock(GridCacheSharedContext.class);
+        when(sctx.kernalContext()).thenReturn(kctx);
+        when(sctx.gridConfig()).thenReturn(cfg);
+
+        FilePageStoreManager filePageStoreMgr = 
mock(FilePageStoreManager.class);
+        when(filePageStoreMgr.workDir()).thenReturn(new 
File(System.getProperty("java.io.tmpdir")));
+
+        when(sctx.pageStore()).thenReturn(filePageStoreMgr);
+
+        FileWriteAheadLogManager wal = mock(FileWriteAheadLogManager.class);
+        when(sctx.wal()).thenReturn(wal);
+
+        when(sctx.logger(any(Class.class))).thenReturn(cfg.getGridLogger());
+
+        //binding
+        GridCacheProcessor cacheProcessor = mock(GridCacheProcessor.class);
+        when(cacheProcessor.context()).thenReturn(sctx);
+        when(kctx.cache()).thenReturn(cacheProcessor);
+
+        //start GCDSM
+        GridCacheDatabaseSharedManager mgr = new 
GridCacheDatabaseSharedManager(kctx);
+        assertNull(mgr.getCheckpointer());
+        mgr.start(sctx);
+
+        assertNotNull(mgr.getCheckpointer());
+
+        int startCnt = mgr.writtenPagesCounter().get();
+
+
+        assertTrue(mgr.writtenPagesCounter().get() > startCnt);
+    }
 }

http://git-wip-us.apache.org/repos/asf/ignite/blob/c31aa014/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/PagesWriteThrottleSandboxTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/PagesWriteThrottleSandboxTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/PagesWriteThrottleSandboxTest.java
index 0bfe22a..7755318 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/PagesWriteThrottleSandboxTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/pagemem/PagesWriteThrottleSandboxTest.java
@@ -34,6 +34,7 @@ import 
org.apache.ignite.configuration.DataStorageConfiguration;
 import org.apache.ignite.configuration.IgniteConfiguration;
 import org.apache.ignite.configuration.WALMode;
 import org.apache.ignite.internal.IgniteEx;
+import 
org.apache.ignite.internal.processors.cache.persistence.CheckpointWriteProgressSupplier;
 import 
org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager;
 import org.apache.ignite.internal.processors.cache.ratemetrics.HitRateMetrics;
 import org.apache.ignite.internal.util.typedef.internal.S;
@@ -151,7 +152,7 @@ public class PagesWriteThrottleSandboxTest extends 
GridCommonAbstractTest {
 
                         long cpWrittenPages;
 
-                        AtomicInteger cntr = 
((GridCacheDatabaseSharedManager)(((IgniteEx)ignite(0))
+                        AtomicInteger cntr = 
((CheckpointWriteProgressSupplier)(((IgniteEx)ignite(0))
                             
.context().cache().context().database())).writtenPagesCounter();
 
                         cpWrittenPages = cntr == null ? 0 : cntr.get();
@@ -169,7 +170,7 @@ public class PagesWriteThrottleSandboxTest extends 
GridCommonAbstractTest {
                         try {
                             Thread.sleep(1000);
                         }
-                        catch (InterruptedException e) {
+                        catch (InterruptedException ignored) {
                             Thread.currentThread().interrupt();
                         }
                     }

http://git-wip-us.apache.org/repos/asf/ignite/blob/c31aa014/modules/core/src/test/java/org/apache/ignite/testsuites/IgnitePdsUnitTestSuite.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/testsuites/IgnitePdsUnitTestSuite.java
 
b/modules/core/src/test/java/org/apache/ignite/testsuites/IgnitePdsUnitTestSuite.java
index c022eea..f68d60c 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/testsuites/IgnitePdsUnitTestSuite.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/testsuites/IgnitePdsUnitTestSuite.java
@@ -30,7 +30,6 @@ import org.junit.runners.Suite;
 @Suite.SuiteClasses({
     IgniteThrottlingUnitTest.class,
     IgnitePageMemReplaceDelayedWriteUnitTest.class,
-    IgniteThrottlingUnitTest.class,
     FullPageIdTableTest.class,
     RobinHoodBackwardShiftHashMapTest.class
 })

Reply via email to