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();
             }

Reply via email to