Cache Expiry policy not working..

classic Classic list List threaded Threaded
11 messages Options
kay kay
Reply | Threaded
Open this post in threaded view
|

Cache Expiry policy not working..

Hello, I'm using Apache Ignite 2.8.0.

I have 7 nodes and put and get cache data with starting 8th node.

The cache expiry policy is CreatedExpiryPolicy 4 minutes. However, some
cache data stored on the eighth node remains, not expired and there is no
error log.

After this situation, I test several times put data and expired well....

Is this a bug with data rebalance / starting node??








--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/
ilya.kasnacheev ilya.kasnacheev
Reply | Threaded
Open this post in threaded view
|

Re: Cache Expiry policy not working..

Hello!

Can you please share some reproducer code. How do you populate your caches?

Regards,
--
Ilya Kasnacheev


пт, 14 авг. 2020 г. в 12:37, kay <[hidden email]>:
Hello, I'm using Apache Ignite 2.8.0.

I have 7 nodes and put and get cache data with starting 8th node.

The cache expiry policy is CreatedExpiryPolicy 4 minutes. However, some
cache data stored on the eighth node remains, not expired and there is no
error log.

After this situation, I test several times put data and expired well....

Is this a bug with data rebalance / starting node??








--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/
kay kay
Reply | Threaded
Open this post in threaded view
|

Re: Cache Expiry policy not working..

I use java thin client and here is my java source code.

ClientConfiguration cfg = new
ClientConfiguration.setAddress('igniteIp:clientPort');
IgniteClient igniteClient = Ignition.startClient(cfg);
ClientCache<Integer, Integer> testCache = igniteClient.cache("TEST_CACHE");

for(int i =0; i< 50; i++){
     testCache.put(i, i+1);
}


some data is not expiry.. it remains..
I'll waiting for reply.
Thank you so much




--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/
ezhuravlev ezhuravlev
Reply | Threaded
Open this post in threaded view
|

Re: Cache Expiry policy not working..

Can you please share the entire source code? We also need to see how you're
checking that data is still there.

Evgenii



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/
kay kay
Reply | Threaded
Open this post in threaded view
|

Re: Cache Expiry policy not working..

Hello, here is my code for test.


public class CachePutLoopTest {

 /**
   * @param args
   */
  public static void main(String[] args) {
   /*
    cache의 ip, port 파라미터를 받아서 특정노드에 데이터를 저장  
    */
   System.out.println("┌──────────────────────── Cache Rebalance Put/Get
Start ────────────────────────");
   ClientConfiguration cfg = new
ClientConfiguration().setAddresses(args[0]);
   IgniteClient igniteClient = Ignition.startClient(cfg);
   
   ClientCache<Integer, Integer> testCache = igniteClient.cache(args[1]);
   System.out.println("│ ■ Cache Name : " + testCache.getName());
   System.out.println("│ ■ Cache Put Start");
   
   for(int i = 0; i < Integer.parseInt(args[2]); i++) {
    testCache.put(i, i+1);
   }// end for(i)
   
   System.out.println("│ ■ Cache Put End");
   System.out.println("│ ■ Cache Get Start");
   for(int i = 0; i < Integer.parseInt(args[2]); i++) {
    System.out.println("│ ■ Data Get : "+testCache.get(i));
   }// end for(i)
   System.out.println("│ ■ Cache Get End");
   System.out.println("└──────────────────────── Cache Rebalance Put/Get End
────────────────────────");
   System.out.println();
   System.out.println();
 

 }// end of main

}// end of CachePutLoopTest.java


and I use GridGainWebConsole for monitoring.
so I figured out remain cache data.


Thank you so much.



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/
ezhuravlev ezhuravlev
Reply | Threaded
Open this post in threaded view
|

Re: Cache Expiry policy not working..

Well, in the code you've shared you're not waiting between puts and checks after that. I used this expiry policy for cache: FactoryBuilder.factoryOf(new CreatedExpiryPolicy(new Duration(SECONDS, 1))))
and added Thread.sleep(2000) before puts and gets in your code and ExpiryPolicy world for me without any issues.

Evgenii

вт, 25 авг. 2020 г. в 02:31, kay <[hidden email]>:
Hello, here is my code for test.


public class CachePutLoopTest {

 /**
   * @param args
   */
  public static void main(String[] args) {
   /*
    cache의 ip, port 파라미터를 받아서 특정노드에 데이터를 저장 
    */
   System.out.println("┌──────────────────────── Cache Rebalance Put/Get
Start ────────────────────────");
   ClientConfiguration cfg = new
ClientConfiguration().setAddresses(args[0]);
   IgniteClient igniteClient = Ignition.startClient(cfg);

   ClientCache<Integer, Integer> testCache = igniteClient.cache(args[1]);
   System.out.println("│ ■ Cache Name : " + testCache.getName());
   System.out.println("│ ■ Cache Put Start");

   for(int i = 0; i < Integer.parseInt(args[2]); i++) {
    testCache.put(i, i+1);
   }// end for(i)

   System.out.println("│ ■ Cache Put End");
   System.out.println("│ ■ Cache Get Start");
   for(int i = 0; i < Integer.parseInt(args[2]); i++) {
    System.out.println("│ ■ Data Get : "+testCache.get(i));
   }// end for(i)
   System.out.println("│ ■ Cache Get End");
   System.out.println("└──────────────────────── Cache Rebalance Put/Get End
────────────────────────");
   System.out.println();
   System.out.println();


 }// end of main

}// end of CachePutLoopTest.java


and I use GridGainWebConsole for monitoring.
so I figured out remain cache data.


Thank you so much.



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/
kay kay
Reply | Threaded
Open this post in threaded view
|

Re: Cache Expiry policy not working..

Hello, There is a get method in my code.

but that method is not for expiry check that method to check if data is
saved well.

I figured out in GirdGain webconsole cache size after 4hours data put(expiry
policy is 4 minutes).



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/
ezhuravlev ezhuravlev
Reply | Threaded
Open this post in threaded view
|

Re: Cache Expiry policy not working..

Hi,

It looks like a little bit different problem then. As far as I see, the only issue here is related to the cache size, no to the get operations. It is a known issue: https://issues.apache.org/jira/browse/IGNITE-9474

Best Regards,
Evgenii

вт, 25 авг. 2020 г. в 21:22, kay <[hidden email]>:
Hello, There is a get method in my code.

but that method is not for expiry check that method to check if data is
saved well.

I figured out in GirdGain webconsole cache size after 4hours data put(expiry
policy is 4 minutes).



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/
kay kay
Reply | Threaded
Open this post in threaded view
|

Re: Cache Expiry policy not working..

Hi,

I can get data at remain cache data. so that issue you are share is not my
problem.

It not happend every time. sometimes, data is not expired.

Here is my node log when after start, data not expired.
Cache1-2-2.zip
<http://apache-ignite-users.70518.x6.nabble.com/file/t2778/Cache1-2-2.zip>  

this time 17 data count was not expired.
nodeId : 55a72003-066e-4504-bd0e-638ab19c5127
partition Id : 4,5,7,9,12,13,16,20,22,24,27,33,39,42,47,48,49

Please check and analyze the log file to why thoes data were not expired.

I'll wait for reply.
Thank you so much.







--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/
kay kay
Reply | Threaded
Open this post in threaded view
|

Re: Cache Expiry policy not working..

Hi I didn't notice a Cache Name

cache name is NC_INITPGECONTRACT_CACHE

Thank you.



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/
ezhuravlev ezhuravlev
Reply | Threaded
Open this post in threaded view
|

Re: Cache Expiry policy not working..

Hi,
Please share the full maven project with a reproducer then. I wan't able to reproduce the same behaviour with a code you shared before.

Evgenii

чт, 27 авг. 2020 г. в 01:40, kay <[hidden email]>:
Hi I didn't notice a Cache Name

cache name is NC_INITPGECONTRACT_CACHE

Thank you.



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/