You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ignite.apache.org by "Sergey Kozlov (JIRA)" <ji...@apache.org> on 2015/11/12 14:40:10 UTC
[jira] [Created] (IGNITE-1895) Entries aren't evicted for LRU
policy
Sergey Kozlov created IGNITE-1895:
-------------------------------------
Summary: Entries aren't evicted for LRU policy
Key: IGNITE-1895
URL: https://issues.apache.org/jira/browse/IGNITE-1895
Project: Ignite
Issue Type: Bug
Components: cache
Affects Versions: 1.5
Reporter: Sergey Kozlov
Assignee: Yakov Zhdanov
Fix For: 1.5
1. :
{code:title=CacheLruExample.java|borderStyle=solid}
package org.apache.ignite.examples.datagrid;
import java.util.HashMap;
import java.util.Map;
import org.apache.ignite.Ignite;
import org.apache.ignite.IgniteCache;
import org.apache.ignite.IgniteException;
import org.apache.ignite.Ignition;
import org.apache.ignite.examples.ExampleNodeStartup;
public class CachePutGetExample {
/** Cache name. */
private static final String CACHE_NAME = "cache_0001";
public static void main(String[] args) throws IgniteException, InterruptedException {
try (Ignite ignite = Ignition.start("examples/config/example-ignite-lru-client.xml")) {
try (IgniteCache<Integer, String> cache = ignite.getOrCreateCache(CACHE_NAME)) {
System.out.println();
System.out.println(">>> Test started.");
int counter = 0;
for (int i = 1; i <= 100; i++) {
if (cache.get(i) != null)
counter++;
}
System.out.println(">>> Get: found not-null keys " + Integer.toString(counter));
Thread.sleep(1000);
for (int i = 1; i <= 100; i++) {
cache.remove(i);
}
System.out.println(">>> Remove: 1..100");
Thread.sleep(1000);
counter = 0;
for (int i = 1; i <= 100; i++) {
cache.put(i, Integer.toString(i));
counter++;
}
System.out.println(">>> Put: 1..100");
Thread.sleep(1000);
counter = 0;
for (int i = 50; i <= 100; i++) {
if (cache.get(i) != null)
counter++;
}
System.out.println(">>> Get 50..100");
Thread.sleep(1000);
for (int i = 30; i <= 49; i++) {
cache.put(i, Integer.toString(i));
}
System.out.println(">>> Put: 30..49");
Thread.sleep(1000);
counter = 0;
for (int i = 1; i <= 100; i++) {
if (cache.get(i) != null)
counter++;
}
System.out.println(">>> Get: found not-null keys (must be 50): " + Integer.toString(counter));
}
}
}
}
{code}
2. Copy attached configurations in examples/config directory
3. Start two nodes with example-ignite-lru.xml
3. Compile and run example
4. The output of example shows that cache has more entries than defined by max size in eviction policy:
{noformat}
...
[16:34:47,088][INFO ][main][GridDiscoveryManager] Topology snapshot [ver=3, servers=2, clients=1, CPUs=8, heap=3.8GB]
>>> Test started.
>>> Get: found not-null keys 0
>>> Remove: 1..100
>>> Put: 1..100
>>> Get 50..100
>>> Put: 30..49
>>> Get: found not-null keys (must be 50): 70
...
{noformat}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)