This is an automated email from the ASF dual-hosted git repository. sdanilov pushed a commit to branch ignite-18169 in repository https://gitbox.apache.org/repos/asf/ignite.git
commit f0d4f77b745fe9247dbc544eda63574a65a50782 Author: Semyon Danilov <[email protected]> AuthorDate: Wed Nov 16 09:44:28 2022 +0400 IGNITE-18169 Fix IoomFailureHandlerTest.testIoomErrorPdsHandling fails --- .../cache/persistence/GridCacheDatabaseSharedManager.java | 15 ++++++++++++--- .../org/apache/ignite/failure/IoomFailureHandlerTest.java | 2 +- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheDatabaseSharedManager.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheDatabaseSharedManager.java index bd402a9b441..5730d45228a 100755 --- a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheDatabaseSharedManager.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/GridCacheDatabaseSharedManager.java @@ -1185,14 +1185,22 @@ public class GridCacheDatabaseSharedManager extends IgniteCacheDatabaseSharedMan } /** */ - private long[] calculateFragmentSizes(int concLvl, long cacheSize, long chpBufSize) { + private long[] calculateFragmentSizes(String regionName, int concLvl, long cacheSize, long chpBufSize) { if (concLvl < 2) concLvl = Runtime.getRuntime().availableProcessors(); long fragmentSize = cacheSize / concLvl; - if (fragmentSize < 1024 * 1024) - fragmentSize = 1024 * 1024; + if (fragmentSize < U.MB) { + // Chunk lesser than 1MiB doesn't make much sense. + fragmentSize = U.MB; + + String curSize = U.readableSize(cacheSize, true); + String increasedSize = U.readableSize(U.MB * concLvl, true); + + U.warn(log, "Region [" + regionName + "] size " + curSize + " is too small for concurrency level=" + + concLvl + ". " + "Automatically increasing it to " + increasedSize); + } long[] sizes = new long[concLvl + 1]; @@ -1250,6 +1258,7 @@ public class GridCacheDatabaseSharedManager extends IgniteCacheDatabaseSharedMan PageMemoryImpl pageMem = new PageMemoryImpl( wrapMetricsPersistentMemoryProvider(memProvider, memMetrics), calculateFragmentSizes( + plcCfg.getName(), memCfg.getConcurrencyLevel(), cacheSize, chpBufSize diff --git a/modules/core/src/test/java/org/apache/ignite/failure/IoomFailureHandlerTest.java b/modules/core/src/test/java/org/apache/ignite/failure/IoomFailureHandlerTest.java index 402c1a5ee38..09e1e650130 100644 --- a/modules/core/src/test/java/org/apache/ignite/failure/IoomFailureHandlerTest.java +++ b/modules/core/src/test/java/org/apache/ignite/failure/IoomFailureHandlerTest.java @@ -152,7 +152,7 @@ public class IoomFailureHandlerTest extends AbstractFailureHandlerTest { try (Transaction tx = ignite0.transactions().txStart()) { for (Integer i : primaryKeys(cache1, ENTRIES)) - cache0.put(i, new byte[PAGE_SIZE / 3 * 2]); + cache0.put(i, new byte[PAGE_SIZE * 2]); tx.commit(); }
