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(+)
----------------------------------------------------------------------