Hi, I am running an app with a custom dataregion for one of the cache's with following configuration, max size = 20mb (just for example) persistence=false expiry policy = Random_2_LRU
I am using a 3rd party persistence (RDBMS). When i use this configuration and add data all works fine. E.g. say i put 50k records, all 50k make it to the DB, while only 30k stay in the cache (based on the above expiration policy). All's good so far. However, when i start the app all over again, i preload the cache with data from the DB. The DB has 50k records, so i expect the cache to continue to apply the expiration policy as it nears its 90% data region capacity. However, as i am pre loading, i am monitoring the mbeans for data region and the overall entry count. I see the data region allocation go above 20mb and the entry count go above 40k. And then it just crashes with OOM with the below error, [2020-07-23T18:41:43,286][ERROR][Test.Thread.4][ignite] Critical system error detected. Will be handled accordingly to configured handler [hnd=StopNodeOrHaltFailureHandler [tryStop=false, timeout=0, super=AbstractFailureHandler [ignoredFailureTypes=UnmodifiableSet [SYSTEM_WORKER_BLOCKED, SYSTEM_CRITICAL_OPERATION_TIMEOUT]]], failureCtx=FailureContext [type=CRITICAL_ERROR, err=class o.a.i.i.mem.IgniteOutOfMemoryException: Out of memory in data region [name=Account, initSize=19.0 MiB, maxSize=20.0 MiB, persistenceEnabled=false] Try the following: ^-- Increase maximum off-heap memory size (DataRegionConfiguration.maxSize) ^-- Enable Ignite persistence (DataRegionConfiguration.persistenceEnabled) ^-- Enable eviction or expiration policies]] org.apache.ignite.internal.mem.IgniteOutOfMemoryException: Out of memory in data region [name=be.gen.Concepts.Account, initSize=19.0 MiB, maxSize=20.0 MiB, persistenceEnabled=false] Try the following: ^-- Increase maximum off-heap memory size (DataRegionConfiguration.maxSize) ^-- Enable Ignite persistence (DataRegionConfiguration.persistenceEnabled) ^-- Enable eviction or expiration policies at org.apache.ignite.internal.pagemem.impl.PageMemoryNoStoreImpl.allocatePage(PageMemoryNoStoreImpl.java:322) [ignite-core-2.8.1.jar:2.8.1] at org.apache.ignite.internal.processors.cache.persistence.freelist.AbstractFreeList.allocateDataPage(AbstractFreeList.java:570) [ignite-core-2.8.1.jar:2.8.1] at org.apache.ignite.internal.processors.cache.persistence.freelist.AbstractFreeList.writeSinglePage(AbstractFreeList.java:688) [ignite-core-2.8.1.jar:2.8.1] at org.apache.ignite.internal.processors.cache.persistence.freelist.AbstractFreeList.insertDataRow(AbstractFreeList.java:582) [ignite-core-2.8.1.jar:2.8.1] at org.apache.ignite.internal.processors.cache.persistence.freelist.CacheFreeList.insertDataRow(CacheFreeList.java:74) [ignite-core-2.8.1.jar:2.8.1] at org.apache.ignite.internal.processors.cache.persistence.freelist.CacheFreeList.insertDataRow(CacheFreeList.java:35) [ignite-core-2.8.1.jar:2.8.1] at org.apache.ignite.internal.processors.cache.persistence.RowStore.addRow(RowStore.java:108) [ignite-core-2.8.1.jar:2.8.1] ... Not sure why is the expiration policy not kicking in. Is this a bug? Any inputs appreciated. Victor -- Sent from: http://apache-ignite-users.70518.x6.nabble.com/