You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ag...@apache.org on 2017/04/11 16:54:42 UTC

[1/5] ignite git commit: ignite-3477-master onheapCacheEnabled=true xml

Repository: ignite
Updated Branches:
  refs/heads/ignite-3477-master 570354702 -> 06cee57e6


ignite-3477-master  onheapCacheEnabled=true xml


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

Branch: refs/heads/ignite-3477-master
Commit: 391d8d00327736a3acad0025ca1353131b3b0a64
Parents: c9fd6b9
Author: Dmitriy Govorukhin <dg...@gridgain.com>
Authored: Tue Apr 11 18:08:44 2017 +0300
Committer: Dmitriy Govorukhin <dg...@gridgain.com>
Committed: Tue Apr 11 18:08:44 2017 +0300

----------------------------------------------------------------------
 modules/core/src/test/config/spring-multicache.xml | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/391d8d00/modules/core/src/test/config/spring-multicache.xml
----------------------------------------------------------------------
diff --git a/modules/core/src/test/config/spring-multicache.xml b/modules/core/src/test/config/spring-multicache.xml
index 6c6ecf4..7644a30 100644
--- a/modules/core/src/test/config/spring-multicache.xml
+++ b/modules/core/src/test/config/spring-multicache.xml
@@ -72,6 +72,8 @@
 
                     <property name="rebalanceMode" value="SYNC"/>
 
+                    <property name="onheapCacheEnabled" value="true"/>
+
                     <property name="evictionPolicy">
                         <bean class="org.apache.ignite.cache.eviction.lru.LruEvictionPolicy">
                             <property name="maxSize" value="100"/>
@@ -94,6 +96,8 @@
 
                     <property name="rebalanceMode" value="SYNC"/>
 
+                    <property name="onheapCacheEnabled" value="true"/>
+
                     <property name="evictionPolicy">
                         <bean class="org.apache.ignite.cache.eviction.lru.LruEvictionPolicy">
                             <property name="maxSize" value="100"/>
@@ -116,6 +120,8 @@
 
                     <property name="rebalanceMode" value="SYNC"/>
 
+                    <property name="onheapCacheEnabled" value="true"/>
+
                     <property name="evictionPolicy">
                         <bean class="org.apache.ignite.cache.eviction.lru.LruEvictionPolicy">
                             <property name="maxSize" value="100"/>
@@ -138,6 +144,8 @@
 
                     <property name="rebalanceMode" value="SYNC"/>
 
+                    <property name="onheapCacheEnabled" value="true"/>
+
                     <property name="evictionPolicy">
                         <bean class="org.apache.ignite.cache.eviction.lru.LruEvictionPolicy">
                             <property name="maxSize" value="100"/>
@@ -161,6 +169,8 @@
 
                     <property name="rebalanceMode" value="SYNC"/>
 
+                    <property name="onheapCacheEnabled" value="true"/>
+
                     <property name="evictionPolicy">
                         <bean class="org.apache.ignite.cache.eviction.lru.LruEvictionPolicy">
                             <property name="maxSize" value="100"/>
@@ -183,6 +193,8 @@
 
                     <property name="rebalanceMode" value="SYNC"/>
 
+                    <property name="onheapCacheEnabled" value="true"/>
+
                     <property name="evictionPolicy">
                         <bean class="org.apache.ignite.cache.eviction.lru.LruEvictionPolicy">
                             <property name="maxSize" value="100"/>
@@ -205,6 +217,8 @@
 
                     <property name="rebalanceMode" value="SYNC"/>
 
+                    <property name="onheapCacheEnabled" value="true"/>
+
                     <property name="evictionPolicy">
                         <bean class="org.apache.ignite.cache.eviction.lru.LruEvictionPolicy">
                             <property name="maxSize" value="100"/>
@@ -227,6 +241,8 @@
 
                     <property name="rebalanceMode" value="SYNC"/>
 
+                    <property name="onheapCacheEnabled" value="true"/>
+
                     <property name="evictionPolicy">
                         <bean class="org.apache.ignite.cache.eviction.lru.LruEvictionPolicy">
                             <property name="maxSize" value="100"/>


[2/5] ignite git commit: IGNITE-4534: Detailed javadocs added + Tests now run faster

Posted by ag...@apache.org.
IGNITE-4534: Detailed javadocs added + Tests now run faster


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

Branch: refs/heads/ignite-3477-master
Commit: 0390391870c759e1c5d65605b94a9bcbf3e9e67c
Parents: d69a594
Author: Ivan Rakov <iv...@gmail.com>
Authored: Tue Apr 11 19:06:54 2017 +0300
Committer: Ivan Rakov <iv...@gmail.com>
Committed: Tue Apr 11 19:06:54 2017 +0300

----------------------------------------------------------------------
 .../configuration/DataPageEvictionMode.java       | 16 ++++++++++++++--
 .../configuration/MemoryPolicyConfiguration.java  | 18 ++++++++++++------
 .../eviction/paged/PageEvictionAbstractTest.java  |  4 ++--
 .../eviction/paged/PageEvictionMultinodeTest.java |  4 ++--
 .../paged/PageEvictionReadThroughTest.java        |  2 +-
 5 files changed, 31 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/03903918/modules/core/src/main/java/org/apache/ignite/configuration/DataPageEvictionMode.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/configuration/DataPageEvictionMode.java b/modules/core/src/main/java/org/apache/ignite/configuration/DataPageEvictionMode.java
index bada68e..da3dbdf 100644
--- a/modules/core/src/main/java/org/apache/ignite/configuration/DataPageEvictionMode.java
+++ b/modules/core/src/main/java/org/apache/ignite/configuration/DataPageEvictionMode.java
@@ -24,9 +24,21 @@ public enum DataPageEvictionMode {
     /** Disabled. */
     DISABLED,
 
-    /** Random lru. */
+    /**
+     * Random-LRU algorithm. In a nutshell:
+     * 1) During memory policy initialization, off-heap array is allocated to track timestamp of last usage for each
+     * data page.
+     * 2) When data page on address X is accessed, current timestamp is stored in X / PAGE_SIZE array position.
+     * 3) When there's a need for eviction, we randomly choose 5 indices of array (if some of indices point to
+     * non-data pages, re-choose them) and evict data page with minimum timestamp.
+     */
     RANDOM_LRU,
 
-    /** Random 2-lru. */
+    /**
+     * Random-2-LRU algorithm. Scan-resistant version of Random-LRU. The only difference is that we store two
+     * previous timestamps for each data page, and choose minimum between "older" timestamps. LRU-2 outperforms LRU by
+     * resolving "one-hit wonder" problem: if page is accessed very rarely, but accidentally accessed once, it's
+     * protected from eviction for long time.
+     */
     RANDOM_2_LRU
 }

http://git-wip-us.apache.org/repos/asf/ignite/blob/03903918/modules/core/src/main/java/org/apache/ignite/configuration/MemoryPolicyConfiguration.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/configuration/MemoryPolicyConfiguration.java b/modules/core/src/main/java/org/apache/ignite/configuration/MemoryPolicyConfiguration.java
index d6203c6..6fe373d 100644
--- a/modules/core/src/main/java/org/apache/ignite/configuration/MemoryPolicyConfiguration.java
+++ b/modules/core/src/main/java/org/apache/ignite/configuration/MemoryPolicyConfiguration.java
@@ -17,10 +17,9 @@
 package org.apache.ignite.configuration;
 
 import java.io.Serializable;
+import org.apache.ignite.internal.mem.OutOfMemoryException;
 import org.apache.ignite.internal.pagemem.PageMemory;
 import org.apache.ignite.internal.processors.cache.database.MemoryPolicy;
-import org.apache.ignite.internal.processors.cache.database.freelist.FreeList;
-import org.apache.ignite.internal.processors.cache.database.tree.io.DataPageIO;
 
 /**
  * Configuration bean used for creating {@link MemoryPolicy} instances.
@@ -48,12 +47,19 @@ public final class MemoryPolicyConfiguration implements Serializable {
     /** Algorithm for per-page eviction. If {@link DataPageEvictionMode#DISABLED} set, eviction is not performed. */
     private DataPageEvictionMode pageEvictionMode = DataPageEvictionMode.DISABLED;
 
-    /** Allocation of new {@link DataPageIO} pages is stopped when this percentage of pages are allocated. */
+    /** Threshold for per-page eviction.
+     * When this percentage of memory pages of the current policy is allocated (90% by default),
+     * system starts page eviction.
+     * Decrease this parameter if {@link OutOfMemoryException} occurred with enabled page eviction.
+     */
     private double evictionThreshold = 0.9;
 
-    /** Allocation of new {@link DataPageIO} pages is stopped by maintaining this amount of empty pages in
-     * corresponding {@link FreeList} bucket. Pages get into the bucket through evicting all data entries one by one.
-     * Higher load and contention require larger pool size.
+    /** When {@link #evictionThreshold} is reached, allocation of new data pages is prevented by maintaining this
+     * amount of evicted data pages in the pool. If any thread needs free page to store cache entry,
+     * it will take empty page from the pool instead of allocating a new one.
+     * Increase this parameter if cache can contain very big entries (total size of pages in the pool should be enough
+     * to contain largest cache entry).
+     * Increase this parameter if {@link OutOfMemoryException} occurred with enabled page eviction.
      */
     private int emptyPagesPoolSize = 100;
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/03903918/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/eviction/paged/PageEvictionAbstractTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/eviction/paged/PageEvictionAbstractTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/eviction/paged/PageEvictionAbstractTest.java
index bf05146..20edd4e 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/eviction/paged/PageEvictionAbstractTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/eviction/paged/PageEvictionAbstractTest.java
@@ -38,13 +38,13 @@ public class PageEvictionAbstractTest extends GridCommonAbstractTest {
     protected static final TcpDiscoveryIpFinder IP_FINDER = new TcpDiscoveryVmIpFinder(true);
 
     /** Offheap size for memory policy. */
-    private static final int SIZE = 256 * 1024 * 1024;
+    private static final int SIZE = 96 * 1024 * 1024;
 
     /** Page size. */
     static final int PAGE_SIZE = 2048;
 
     /** Number of entries. */
-    static final int ENTRIES = 400_000;
+    static final int ENTRIES = 80_000;
 
     /** Empty pages pool size. */
     private static final int EMPTY_PAGES_POOL_SIZE = 100;

http://git-wip-us.apache.org/repos/asf/ignite/blob/03903918/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/eviction/paged/PageEvictionMultinodeTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/eviction/paged/PageEvictionMultinodeTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/eviction/paged/PageEvictionMultinodeTest.java
index 2302de1..7a58dd4 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/eviction/paged/PageEvictionMultinodeTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/eviction/paged/PageEvictionMultinodeTest.java
@@ -102,8 +102,8 @@ public abstract class PageEvictionMultinodeTest extends PageEvictionAbstractTest
 
         System.out.println(">>> Resulting size: " + resultingSize);
 
-        // More than half of entries evicted, no OutOfMemory occurred, success.
-        assertTrue(resultingSize < ENTRIES / 2);
+        // Eviction started, no OutOfMemory occurred, success.
+        assertTrue(resultingSize < ENTRIES);
 
         ignite(0).destroyCache(cfg.getName());
     }

http://git-wip-us.apache.org/repos/asf/ignite/blob/03903918/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/eviction/paged/PageEvictionReadThroughTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/eviction/paged/PageEvictionReadThroughTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/eviction/paged/PageEvictionReadThroughTest.java
index c8cd7c9..ff71361 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/eviction/paged/PageEvictionReadThroughTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/eviction/paged/PageEvictionReadThroughTest.java
@@ -73,7 +73,7 @@ public class PageEvictionReadThroughTest extends PageEvictionAbstractTest {
      * @throws Exception If failed.
      */
     private void testEvictionWithReadThrough(CacheAtomicityMode atomicityMode, CacheMode cacheMode) throws Exception {
-        startGridsMultiThreaded(4);
+        startGrid(0);
 
         CacheConfiguration<Object, Object> cfg = cacheConfig("evict-rebalance", null, cacheMode, atomicityMode,
             CacheWriteSynchronizationMode.PRIMARY_SYNC);


[4/5] ignite git commit: IGNITE-3477 - Fixing hanging test

Posted by ag...@apache.org.
IGNITE-3477 - Fixing hanging test


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

Branch: refs/heads/ignite-3477-master
Commit: b9867ebbab8c9712e02df00007d56c075d5c61a6
Parents: 5703547
Author: Alexey Goncharuk <al...@gmail.com>
Authored: Tue Apr 11 19:53:26 2017 +0300
Committer: Alexey Goncharuk <al...@gmail.com>
Committed: Tue Apr 11 19:53:46 2017 +0300

----------------------------------------------------------------------
 .../apache/ignite/internal/processors/cache/GridCacheContext.java  | 2 --
 .../processors/cache/IgniteCacheTopologySafeGetSelfTest.java       | 2 +-
 2 files changed, 1 insertion(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/b9867ebb/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java
index ffc379c..9e6fc3776 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/GridCacheContext.java
@@ -54,7 +54,6 @@ import org.apache.ignite.internal.managers.communication.GridIoManager;
 import org.apache.ignite.internal.managers.deployment.GridDeploymentManager;
 import org.apache.ignite.internal.managers.discovery.GridDiscoveryManager;
 import org.apache.ignite.internal.managers.eventstorage.GridEventStorageManager;
-import org.apache.ignite.internal.pagemem.PageMemory;
 import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion;
 import org.apache.ignite.internal.processors.cache.database.MemoryPolicy;
 import org.apache.ignite.internal.processors.cache.database.freelist.FreeList;
@@ -85,7 +84,6 @@ import org.apache.ignite.internal.processors.cache.version.GridCacheVersionedEnt
 import org.apache.ignite.internal.processors.cacheobject.IgniteCacheObjectProcessor;
 import org.apache.ignite.internal.processors.closure.GridClosureProcessor;
 import org.apache.ignite.internal.processors.plugin.CachePluginManager;
-import org.apache.ignite.internal.processors.query.GridQueryProcessor;
 import org.apache.ignite.internal.processors.query.QueryUtils;
 import org.apache.ignite.internal.processors.timeout.GridTimeoutProcessor;
 import org.apache.ignite.internal.util.F0;

http://git-wip-us.apache.org/repos/asf/ignite/blob/b9867ebb/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheTopologySafeGetSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheTopologySafeGetSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheTopologySafeGetSelfTest.java
index 2404095..0140000 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheTopologySafeGetSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCacheTopologySafeGetSelfTest.java
@@ -147,7 +147,7 @@ public class IgniteCacheTopologySafeGetSelfTest extends GridCommonAbstractTest {
             IgniteInternalFuture<?> nodeFut = startNodeAsync();
 
             if (failPrimary)
-                stopGrid(1);
+                stopGrid(getTestIgniteInstanceName(1), false, false);
 
             assertEquals(key, ((IgniteKernal)ignite(0)).internalCache("tx").getTopologySafe(key));
             assertEquals(key, ((IgniteKernal)ignite(0)).internalCache("atomic").getTopologySafe(key));


[5/5] ignite git commit: Merge branch 'ignite-3477-master' of https://github.com/gridgain/apache-ignite into ignite-3477-master

Posted by ag...@apache.org.
Merge branch 'ignite-3477-master' of https://github.com/gridgain/apache-ignite into ignite-3477-master


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

Branch: refs/heads/ignite-3477-master
Commit: 06cee57e623a1c70c9bfc23547cbc66f2b62eac9
Parents: b9867eb face0c7
Author: Alexey Goncharuk <al...@gmail.com>
Authored: Tue Apr 11 19:53:59 2017 +0300
Committer: Alexey Goncharuk <al...@gmail.com>
Committed: Tue Apr 11 19:53:59 2017 +0300

----------------------------------------------------------------------
 .../configuration/DataPageEvictionMode.java       | 16 ++++++++++++++--
 .../configuration/MemoryPolicyConfiguration.java  | 18 ++++++++++++------
 .../core/src/test/config/spring-multicache.xml    | 16 ++++++++++++++++
 .../eviction/paged/PageEvictionAbstractTest.java  |  4 ++--
 .../eviction/paged/PageEvictionMultinodeTest.java |  4 ++--
 .../paged/PageEvictionReadThroughTest.java        |  2 +-
 6 files changed, 47 insertions(+), 13 deletions(-)
----------------------------------------------------------------------



[3/5] ignite git commit: Merge remote-tracking branch 'gg-fork-origin/ignite-3477-master' into ignite-3477-master-ggfork

Posted by ag...@apache.org.
Merge remote-tracking branch 'gg-fork-origin/ignite-3477-master' into ignite-3477-master-ggfork


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

Branch: refs/heads/ignite-3477-master
Commit: face0c7b8190aaf4849ee5048849c2bc1f7aae62
Parents: 0390391 391d8d0
Author: Ivan Rakov <iv...@gmail.com>
Authored: Tue Apr 11 19:07:25 2017 +0300
Committer: Ivan Rakov <iv...@gmail.com>
Committed: Tue Apr 11 19:07:25 2017 +0300

----------------------------------------------------------------------
 modules/core/src/test/config/spring-multicache.xml  | 16 ++++++++++++++++
 .../cpp/core-test/config/cache-test-default.xml     |  1 +
 2 files changed, 17 insertions(+)
----------------------------------------------------------------------