[jira] [Commented] (IGNITE-12530) Pages list caching can cause IgniteOOME when checkpoint is triggered by "too many dirty pages" reason
[ https://issues.apache.org/jira/browse/IGNITE-12530?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17022933#comment-17022933 ] Aleksey Plekhanov commented on IGNITE-12530: Cherry-picked to 2.8 > Pages list caching can cause IgniteOOME when checkpoint is triggered by "too > many dirty pages" reason > - > > Key: IGNITE-12530 > URL: https://issues.apache.org/jira/browse/IGNITE-12530 > Project: Ignite > Issue Type: Bug > Components: persistence >Affects Versions: 2.8 >Reporter: Aleksey Plekhanov >Assignee: Aleksey Plekhanov >Priority: Critical > Fix For: 2.9 > > Attachments: screenshot-1.png, screenshot-2.png > > Time Spent: 1h 40m > Remaining Estimate: 0h > > When a checkpoint is triggered, we need some amount of page memory to store > pages list on-heap cache. > If data region is too small, a checkpoint is triggered by "too many dirty > pages" reason and pages list cache is rather big, we can get > IgniteOutOfMemoryException. > Reproducer: > {code:java} > @Override protected IgniteConfiguration getConfiguration(String name) throws > Exception { > IgniteConfiguration cfg = super.getConfiguration(name); > cfg.setDataStorageConfiguration(new DataStorageConfiguration() > .setDefaultDataRegionConfiguration(new DataRegionConfiguration() > .setPersistenceEnabled(true) > .setMaxSize(50 * 1024 * 1024) > )); > return cfg; > } > @Test > public void testUpdatesNotFittingIntoMemoryRegion() throws Exception { > IgniteEx ignite = startGrid(0); > ignite.cluster().active(true); > ignite.getOrCreateCache(DEFAULT_CACHE_NAME); > try (IgniteDataStreamer streamer = > ignite.dataStreamer(DEFAULT_CACHE_NAME)) { > for (int i = 0; i < 100_000; i++) > streamer.addData(i, new byte[i % 2048]); > } > } > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Commented] (IGNITE-12530) Pages list caching can cause IgniteOOME when checkpoint is triggered by "too many dirty pages" reason
[ https://issues.apache.org/jira/browse/IGNITE-12530?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17019491#comment-17019491 ] Ivan Rakov commented on IGNITE-12530: - [~alex_pl] Indeed, I didn't catch it. Thanks. Looks good to me. > Pages list caching can cause IgniteOOME when checkpoint is triggered by "too > many dirty pages" reason > - > > Key: IGNITE-12530 > URL: https://issues.apache.org/jira/browse/IGNITE-12530 > Project: Ignite > Issue Type: Bug > Components: persistence >Affects Versions: 2.8 >Reporter: Aleksey Plekhanov >Assignee: Aleksey Plekhanov >Priority: Major > Attachments: screenshot-1.png, screenshot-2.png > > Time Spent: 1.5h > Remaining Estimate: 0h > > When a checkpoint is triggered, we need some amount of page memory to store > pages list on-heap cache. > If data region is too small, a checkpoint is triggered by "too many dirty > pages" reason and pages list cache is rather big, we can get > IgniteOutOfMemoryException. > Reproducer: > {code:java} > @Override protected IgniteConfiguration getConfiguration(String name) throws > Exception { > IgniteConfiguration cfg = super.getConfiguration(name); > cfg.setDataStorageConfiguration(new DataStorageConfiguration() > .setDefaultDataRegionConfiguration(new DataRegionConfiguration() > .setPersistenceEnabled(true) > .setMaxSize(50 * 1024 * 1024) > )); > return cfg; > } > @Test > public void testUpdatesNotFittingIntoMemoryRegion() throws Exception { > IgniteEx ignite = startGrid(0); > ignite.cluster().active(true); > ignite.getOrCreateCache(DEFAULT_CACHE_NAME); > try (IgniteDataStreamer streamer = > ignite.dataStreamer(DEFAULT_CACHE_NAME)) { > for (int i = 0; i < 100_000; i++) > streamer.addData(i, new byte[i % 2048]); > } > } > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Commented] (IGNITE-12530) Pages list caching can cause IgniteOOME when checkpoint is triggered by "too many dirty pages" reason
[ https://issues.apache.org/jira/browse/IGNITE-12530?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17019474#comment-17019474 ] Ignite TC Bot commented on IGNITE-12530: {panel:title=Branch: [pull/7245/head] Base: [master] : No blockers found!|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}{panel} [TeamCity *-- Run :: All* Results|https://ci.ignite.apache.org/viewLog.html?buildId=4938592buildTypeId=IgniteTests24Java8_RunAll] > Pages list caching can cause IgniteOOME when checkpoint is triggered by "too > many dirty pages" reason > - > > Key: IGNITE-12530 > URL: https://issues.apache.org/jira/browse/IGNITE-12530 > Project: Ignite > Issue Type: Bug > Components: persistence >Affects Versions: 2.8 >Reporter: Aleksey Plekhanov >Assignee: Aleksey Plekhanov >Priority: Major > Attachments: screenshot-1.png, screenshot-2.png > > Time Spent: 1.5h > Remaining Estimate: 0h > > When a checkpoint is triggered, we need some amount of page memory to store > pages list on-heap cache. > If data region is too small, a checkpoint is triggered by "too many dirty > pages" reason and pages list cache is rather big, we can get > IgniteOutOfMemoryException. > Reproducer: > {code:java} > @Override protected IgniteConfiguration getConfiguration(String name) throws > Exception { > IgniteConfiguration cfg = super.getConfiguration(name); > cfg.setDataStorageConfiguration(new DataStorageConfiguration() > .setDefaultDataRegionConfiguration(new DataRegionConfiguration() > .setPersistenceEnabled(true) > .setMaxSize(50 * 1024 * 1024) > )); > return cfg; > } > @Test > public void testUpdatesNotFittingIntoMemoryRegion() throws Exception { > IgniteEx ignite = startGrid(0); > ignite.cluster().active(true); > ignite.getOrCreateCache(DEFAULT_CACHE_NAME); > try (IgniteDataStreamer streamer = > ignite.dataStreamer(DEFAULT_CACHE_NAME)) { > for (int i = 0; i < 100_000; i++) > streamer.addData(i, new byte[i % 2048]); > } > } > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Commented] (IGNITE-12530) Pages list caching can cause IgniteOOME when checkpoint is triggered by "too many dirty pages" reason
[ https://issues.apache.org/jira/browse/IGNITE-12530?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17019446#comment-17019446 ] Stanilovsky Evgeny commented on IGNITE-12530: - !screenshot-2.png! new fix and test seem ok. > Pages list caching can cause IgniteOOME when checkpoint is triggered by "too > many dirty pages" reason > - > > Key: IGNITE-12530 > URL: https://issues.apache.org/jira/browse/IGNITE-12530 > Project: Ignite > Issue Type: Bug > Components: persistence >Affects Versions: 2.8 >Reporter: Aleksey Plekhanov >Assignee: Aleksey Plekhanov >Priority: Major > Attachments: screenshot-1.png, screenshot-2.png > > Time Spent: 1.5h > Remaining Estimate: 0h > > When a checkpoint is triggered, we need some amount of page memory to store > pages list on-heap cache. > If data region is too small, a checkpoint is triggered by "too many dirty > pages" reason and pages list cache is rather big, we can get > IgniteOutOfMemoryException. > Reproducer: > {code:java} > @Override protected IgniteConfiguration getConfiguration(String name) throws > Exception { > IgniteConfiguration cfg = super.getConfiguration(name); > cfg.setDataStorageConfiguration(new DataStorageConfiguration() > .setDefaultDataRegionConfiguration(new DataRegionConfiguration() > .setPersistenceEnabled(true) > .setMaxSize(50 * 1024 * 1024) > )); > return cfg; > } > @Test > public void testUpdatesNotFittingIntoMemoryRegion() throws Exception { > IgniteEx ignite = startGrid(0); > ignite.cluster().active(true); > ignite.getOrCreateCache(DEFAULT_CACHE_NAME); > try (IgniteDataStreamer streamer = > ignite.dataStreamer(DEFAULT_CACHE_NAME)) { > for (int i = 0; i < 100_000; i++) > streamer.addData(i, new byte[i % 2048]); > } > } > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Commented] (IGNITE-12530) Pages list caching can cause IgniteOOME when checkpoint is triggered by "too many dirty pages" reason
[ https://issues.apache.org/jira/browse/IGNITE-12530?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17018062#comment-17018062 ] Aleksey Plekhanov commented on IGNITE-12530: I've moved pages list cache limit to the database shared manager and added second cache group to test. [~ivan.glukos], [~zstan] please have a look again. > Pages list caching can cause IgniteOOME when checkpoint is triggered by "too > many dirty pages" reason > - > > Key: IGNITE-12530 > URL: https://issues.apache.org/jira/browse/IGNITE-12530 > Project: Ignite > Issue Type: Bug > Components: persistence >Affects Versions: 2.8 >Reporter: Aleksey Plekhanov >Assignee: Aleksey Plekhanov >Priority: Major > Attachments: screenshot-1.png > > Time Spent: 1.5h > Remaining Estimate: 0h > > When a checkpoint is triggered, we need some amount of page memory to store > pages list on-heap cache. > If data region is too small, a checkpoint is triggered by "too many dirty > pages" reason and pages list cache is rather big, we can get > IgniteOutOfMemoryException. > Reproducer: > {code:java} > @Override protected IgniteConfiguration getConfiguration(String name) throws > Exception { > IgniteConfiguration cfg = super.getConfiguration(name); > cfg.setDataStorageConfiguration(new DataStorageConfiguration() > .setDefaultDataRegionConfiguration(new DataRegionConfiguration() > .setPersistenceEnabled(true) > .setMaxSize(50 * 1024 * 1024) > )); > return cfg; > } > @Test > public void testUpdatesNotFittingIntoMemoryRegion() throws Exception { > IgniteEx ignite = startGrid(0); > ignite.cluster().active(true); > ignite.getOrCreateCache(DEFAULT_CACHE_NAME); > try (IgniteDataStreamer streamer = > ignite.dataStreamer(DEFAULT_CACHE_NAME)) { > for (int i = 0; i < 100_000; i++) > streamer.addData(i, new byte[i % 2048]); > } > } > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Commented] (IGNITE-12530) Pages list caching can cause IgniteOOME when checkpoint is triggered by "too many dirty pages" reason
[ https://issues.apache.org/jira/browse/IGNITE-12530?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17017925#comment-17017925 ] Aleksey Plekhanov commented on IGNITE-12530: I've found one problem, the offheap manager created per cache group, so the limit will affect only one cache group, but not the entire data region. I think the database shared manager is a better place to store limits. I will fix it shortly. > Pages list caching can cause IgniteOOME when checkpoint is triggered by "too > many dirty pages" reason > - > > Key: IGNITE-12530 > URL: https://issues.apache.org/jira/browse/IGNITE-12530 > Project: Ignite > Issue Type: Bug > Components: persistence >Affects Versions: 2.8 >Reporter: Aleksey Plekhanov >Assignee: Aleksey Plekhanov >Priority: Major > Attachments: screenshot-1.png > > Time Spent: 1.5h > Remaining Estimate: 0h > > When a checkpoint is triggered, we need some amount of page memory to store > pages list on-heap cache. > If data region is too small, a checkpoint is triggered by "too many dirty > pages" reason and pages list cache is rather big, we can get > IgniteOutOfMemoryException. > Reproducer: > {code:java} > @Override protected IgniteConfiguration getConfiguration(String name) throws > Exception { > IgniteConfiguration cfg = super.getConfiguration(name); > cfg.setDataStorageConfiguration(new DataStorageConfiguration() > .setDefaultDataRegionConfiguration(new DataRegionConfiguration() > .setPersistenceEnabled(true) > .setMaxSize(50 * 1024 * 1024) > )); > return cfg; > } > @Test > public void testUpdatesNotFittingIntoMemoryRegion() throws Exception { > IgniteEx ignite = startGrid(0); > ignite.cluster().active(true); > ignite.getOrCreateCache(DEFAULT_CACHE_NAME); > try (IgniteDataStreamer streamer = > ignite.dataStreamer(DEFAULT_CACHE_NAME)) { > for (int i = 0; i < 100_000; i++) > streamer.addData(i, new byte[i % 2048]); > } > } > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Commented] (IGNITE-12530) Pages list caching can cause IgniteOOME when checkpoint is triggered by "too many dirty pages" reason
[ https://issues.apache.org/jira/browse/IGNITE-12530?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17017412#comment-17017412 ] Ivan Rakov commented on IGNITE-12530: - [~alex_pl] Looks good, please merge. > Pages list caching can cause IgniteOOME when checkpoint is triggered by "too > many dirty pages" reason > - > > Key: IGNITE-12530 > URL: https://issues.apache.org/jira/browse/IGNITE-12530 > Project: Ignite > Issue Type: Bug > Components: persistence >Affects Versions: 2.8 >Reporter: Aleksey Plekhanov >Assignee: Aleksey Plekhanov >Priority: Major > Attachments: screenshot-1.png > > Time Spent: 1.5h > Remaining Estimate: 0h > > When a checkpoint is triggered, we need some amount of page memory to store > pages list on-heap cache. > If data region is too small, a checkpoint is triggered by "too many dirty > pages" reason and pages list cache is rather big, we can get > IgniteOutOfMemoryException. > Reproducer: > {code:java} > @Override protected IgniteConfiguration getConfiguration(String name) throws > Exception { > IgniteConfiguration cfg = super.getConfiguration(name); > cfg.setDataStorageConfiguration(new DataStorageConfiguration() > .setDefaultDataRegionConfiguration(new DataRegionConfiguration() > .setPersistenceEnabled(true) > .setMaxSize(50 * 1024 * 1024) > )); > return cfg; > } > @Test > public void testUpdatesNotFittingIntoMemoryRegion() throws Exception { > IgniteEx ignite = startGrid(0); > ignite.cluster().active(true); > ignite.getOrCreateCache(DEFAULT_CACHE_NAME); > try (IgniteDataStreamer streamer = > ignite.dataStreamer(DEFAULT_CACHE_NAME)) { > for (int i = 0; i < 100_000; i++) > streamer.addData(i, new byte[i % 2048]); > } > } > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Commented] (IGNITE-12530) Pages list caching can cause IgniteOOME when checkpoint is triggered by "too many dirty pages" reason
[ https://issues.apache.org/jira/browse/IGNITE-12530?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17016658#comment-17016658 ] Stanilovsky Evgeny commented on IGNITE-12530: - i run some benchmarks after applying this patch, 3 servers 1 client , persist enabled, partitioned cache, wal log_only, looks good to me. !screenshot-1.png! > Pages list caching can cause IgniteOOME when checkpoint is triggered by "too > many dirty pages" reason > - > > Key: IGNITE-12530 > URL: https://issues.apache.org/jira/browse/IGNITE-12530 > Project: Ignite > Issue Type: Bug > Components: persistence >Affects Versions: 2.8 >Reporter: Aleksey Plekhanov >Assignee: Aleksey Plekhanov >Priority: Major > Attachments: screenshot-1.png > > Time Spent: 1.5h > Remaining Estimate: 0h > > When a checkpoint is triggered, we need some amount of page memory to store > pages list on-heap cache. > If data region is too small, a checkpoint is triggered by "too many dirty > pages" reason and pages list cache is rather big, we can get > IgniteOutOfMemoryException. > Reproducer: > {code:java} > @Override protected IgniteConfiguration getConfiguration(String name) throws > Exception { > IgniteConfiguration cfg = super.getConfiguration(name); > cfg.setDataStorageConfiguration(new DataStorageConfiguration() > .setDefaultDataRegionConfiguration(new DataRegionConfiguration() > .setPersistenceEnabled(true) > .setMaxSize(50 * 1024 * 1024) > )); > return cfg; > } > @Test > public void testUpdatesNotFittingIntoMemoryRegion() throws Exception { > IgniteEx ignite = startGrid(0); > ignite.cluster().active(true); > ignite.getOrCreateCache(DEFAULT_CACHE_NAME); > try (IgniteDataStreamer streamer = > ignite.dataStreamer(DEFAULT_CACHE_NAME)) { > for (int i = 0; i < 100_000; i++) > streamer.addData(i, new byte[i % 2048]); > } > } > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Commented] (IGNITE-12530) Pages list caching can cause IgniteOOME when checkpoint is triggered by "too many dirty pages" reason
[ https://issues.apache.org/jira/browse/IGNITE-12530?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17016645#comment-17016645 ] Aleksey Plekhanov commented on IGNITE-12530: [~ivan.glukos] I've added this check to the existing test. Please have a look again. > Pages list caching can cause IgniteOOME when checkpoint is triggered by "too > many dirty pages" reason > - > > Key: IGNITE-12530 > URL: https://issues.apache.org/jira/browse/IGNITE-12530 > Project: Ignite > Issue Type: Bug > Components: persistence >Affects Versions: 2.8 >Reporter: Aleksey Plekhanov >Assignee: Aleksey Plekhanov >Priority: Major > Time Spent: 1.5h > Remaining Estimate: 0h > > When a checkpoint is triggered, we need some amount of page memory to store > pages list on-heap cache. > If data region is too small, a checkpoint is triggered by "too many dirty > pages" reason and pages list cache is rather big, we can get > IgniteOutOfMemoryException. > Reproducer: > {code:java} > @Override protected IgniteConfiguration getConfiguration(String name) throws > Exception { > IgniteConfiguration cfg = super.getConfiguration(name); > cfg.setDataStorageConfiguration(new DataStorageConfiguration() > .setDefaultDataRegionConfiguration(new DataRegionConfiguration() > .setPersistenceEnabled(true) > .setMaxSize(50 * 1024 * 1024) > )); > return cfg; > } > @Test > public void testUpdatesNotFittingIntoMemoryRegion() throws Exception { > IgniteEx ignite = startGrid(0); > ignite.cluster().active(true); > ignite.getOrCreateCache(DEFAULT_CACHE_NAME); > try (IgniteDataStreamer streamer = > ignite.dataStreamer(DEFAULT_CACHE_NAME)) { > for (int i = 0; i < 100_000; i++) > streamer.addData(i, new byte[i % 2048]); > } > } > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Commented] (IGNITE-12530) Pages list caching can cause IgniteOOME when checkpoint is triggered by "too many dirty pages" reason
[ https://issues.apache.org/jira/browse/IGNITE-12530?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17016158#comment-17016158 ] Ivan Rakov commented on IGNITE-12530: - [~alex_pl] Thanks for your patch, I totally agree with the solution. I'd propose to add a test where we check that after intensive multithreaded load and after checkpoint cache limit counter's value is equal to its maximum level (totalPages * threshold). Thus we'll check that for every increment there's a decrement. > Pages list caching can cause IgniteOOME when checkpoint is triggered by "too > many dirty pages" reason > - > > Key: IGNITE-12530 > URL: https://issues.apache.org/jira/browse/IGNITE-12530 > Project: Ignite > Issue Type: Bug > Components: persistence >Affects Versions: 2.8 >Reporter: Aleksey Plekhanov >Assignee: Aleksey Plekhanov >Priority: Major > Time Spent: 1.5h > Remaining Estimate: 0h > > When a checkpoint is triggered, we need some amount of page memory to store > pages list on-heap cache. > If data region is too small, a checkpoint is triggered by "too many dirty > pages" reason and pages list cache is rather big, we can get > IgniteOutOfMemoryException. > Reproducer: > {code:java} > @Override protected IgniteConfiguration getConfiguration(String name) throws > Exception { > IgniteConfiguration cfg = super.getConfiguration(name); > cfg.setDataStorageConfiguration(new DataStorageConfiguration() > .setDefaultDataRegionConfiguration(new DataRegionConfiguration() > .setPersistenceEnabled(true) > .setMaxSize(50 * 1024 * 1024) > )); > return cfg; > } > @Test > public void testUpdatesNotFittingIntoMemoryRegion() throws Exception { > IgniteEx ignite = startGrid(0); > ignite.cluster().active(true); > ignite.getOrCreateCache(DEFAULT_CACHE_NAME); > try (IgniteDataStreamer streamer = > ignite.dataStreamer(DEFAULT_CACHE_NAME)) { > for (int i = 0; i < 100_000; i++) > streamer.addData(i, new byte[i % 2048]); > } > } > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Commented] (IGNITE-12530) Pages list caching can cause IgniteOOME when checkpoint is triggered by "too many dirty pages" reason
[ https://issues.apache.org/jira/browse/IGNITE-12530?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17016009#comment-17016009 ] Aleksey Plekhanov commented on IGNITE-12530: [~zstan] thank for your comments. Fixed. [~ivan.glukos] could you please have a look too? > Pages list caching can cause IgniteOOME when checkpoint is triggered by "too > many dirty pages" reason > - > > Key: IGNITE-12530 > URL: https://issues.apache.org/jira/browse/IGNITE-12530 > Project: Ignite > Issue Type: Bug > Components: persistence >Affects Versions: 2.8 >Reporter: Aleksey Plekhanov >Assignee: Aleksey Plekhanov >Priority: Major > Time Spent: 1.5h > Remaining Estimate: 0h > > When a checkpoint is triggered, we need some amount of page memory to store > pages list on-heap cache. > If data region is too small, a checkpoint is triggered by "too many dirty > pages" reason and pages list cache is rather big, we can get > IgniteOutOfMemoryException. > Reproducer: > {code:java} > @Override protected IgniteConfiguration getConfiguration(String name) throws > Exception { > IgniteConfiguration cfg = super.getConfiguration(name); > cfg.setDataStorageConfiguration(new DataStorageConfiguration() > .setDefaultDataRegionConfiguration(new DataRegionConfiguration() > .setPersistenceEnabled(true) > .setMaxSize(50 * 1024 * 1024) > )); > return cfg; > } > @Test > public void testUpdatesNotFittingIntoMemoryRegion() throws Exception { > IgniteEx ignite = startGrid(0); > ignite.cluster().active(true); > ignite.getOrCreateCache(DEFAULT_CACHE_NAME); > try (IgniteDataStreamer streamer = > ignite.dataStreamer(DEFAULT_CACHE_NAME)) { > for (int i = 0; i < 100_000; i++) > streamer.addData(i, new byte[i % 2048]); > } > } > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Commented] (IGNITE-12530) Pages list caching can cause IgniteOOME when checkpoint is triggered by "too many dirty pages" reason
[ https://issues.apache.org/jira/browse/IGNITE-12530?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17015836#comment-17015836 ] Stanilovsky Evgeny commented on IGNITE-12530: - [~alex_pl] i place some comment, plz check, i try to rerun benchmarks in near time. > Pages list caching can cause IgniteOOME when checkpoint is triggered by "too > many dirty pages" reason > - > > Key: IGNITE-12530 > URL: https://issues.apache.org/jira/browse/IGNITE-12530 > Project: Ignite > Issue Type: Bug > Components: persistence >Affects Versions: 2.8 >Reporter: Aleksey Plekhanov >Assignee: Aleksey Plekhanov >Priority: Major > Time Spent: 50m > Remaining Estimate: 0h > > When a checkpoint is triggered, we need some amount of page memory to store > pages list on-heap cache. > If data region is too small, a checkpoint is triggered by "too many dirty > pages" reason and pages list cache is rather big, we can get > IgniteOutOfMemoryException. > Reproducer: > {code:java} > @Override protected IgniteConfiguration getConfiguration(String name) throws > Exception { > IgniteConfiguration cfg = super.getConfiguration(name); > cfg.setDataStorageConfiguration(new DataStorageConfiguration() > .setDefaultDataRegionConfiguration(new DataRegionConfiguration() > .setPersistenceEnabled(true) > .setMaxSize(50 * 1024 * 1024) > )); > return cfg; > } > @Test > public void testUpdatesNotFittingIntoMemoryRegion() throws Exception { > IgniteEx ignite = startGrid(0); > ignite.cluster().active(true); > ignite.getOrCreateCache(DEFAULT_CACHE_NAME); > try (IgniteDataStreamer streamer = > ignite.dataStreamer(DEFAULT_CACHE_NAME)) { > for (int i = 0; i < 100_000; i++) > streamer.addData(i, new byte[i % 2048]); > } > } > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Commented] (IGNITE-12530) Pages list caching can cause IgniteOOME when checkpoint is triggered by "too many dirty pages" reason
[ https://issues.apache.org/jira/browse/IGNITE-12530?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17015714#comment-17015714 ] Ignite TC Bot commented on IGNITE-12530: {panel:title=Branch: [pull/7245/head] Base: [master] : No blockers found!|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}{panel} [TeamCity *-- Run :: All* Results|https://ci.ignite.apache.org/viewLog.html?buildId=4928636buildTypeId=IgniteTests24Java8_RunAll] > Pages list caching can cause IgniteOOME when checkpoint is triggered by "too > many dirty pages" reason > - > > Key: IGNITE-12530 > URL: https://issues.apache.org/jira/browse/IGNITE-12530 > Project: Ignite > Issue Type: Bug > Components: persistence >Affects Versions: 2.8 >Reporter: Aleksey Plekhanov >Assignee: Aleksey Plekhanov >Priority: Major > Time Spent: 20m > Remaining Estimate: 0h > > When a checkpoint is triggered, we need some amount of page memory to store > pages list on-heap cache. > If data region is too small, a checkpoint is triggered by "too many dirty > pages" reason and pages list cache is rather big, we can get > IgniteOutOfMemoryException. > Reproducer: > {code:java} > @Override protected IgniteConfiguration getConfiguration(String name) throws > Exception { > IgniteConfiguration cfg = super.getConfiguration(name); > cfg.setDataStorageConfiguration(new DataStorageConfiguration() > .setDefaultDataRegionConfiguration(new DataRegionConfiguration() > .setPersistenceEnabled(true) > .setMaxSize(50 * 1024 * 1024) > )); > return cfg; > } > @Test > public void testUpdatesNotFittingIntoMemoryRegion() throws Exception { > IgniteEx ignite = startGrid(0); > ignite.cluster().active(true); > ignite.getOrCreateCache(DEFAULT_CACHE_NAME); > try (IgniteDataStreamer streamer = > ignite.dataStreamer(DEFAULT_CACHE_NAME)) { > for (int i = 0; i < 100_000; i++) > streamer.addData(i, new byte[i % 2048]); > } > } > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)