This is an automated email from the ASF dual-hosted git repository.

sdanilov pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite.git


The following commit(s) were added to refs/heads/master by this push:
     new 6ad49608f0a IGNITE-18169 Fix 
IoomFailureHandlerTest.testIoomErrorPdsHandling fails (#10381)
6ad49608f0a is described below

commit 6ad49608f0a88c73c45dd78121ad937673935988
Author: Semyon Danilov <[email protected]>
AuthorDate: Fri Nov 18 09:10:52 2022 +0300

    IGNITE-18169 Fix IoomFailureHandlerTest.testIoomErrorPdsHandling fails 
(#10381)
---
 .../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