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

ibessonov pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/ignite-3.git


The following commit(s) were added to refs/heads/main by this push:
     new 4235b2880a4 IGNITE-26201 Stop persisting calculated default storage 
profile size (#6422)
4235b2880a4 is described below

commit 4235b2880a4d6340d18afe83c2cf3f402cbf9c5e
Author: Ivan Bessonov <[email protected]>
AuthorDate: Thu Aug 14 15:59:58 2025 +0300

    IGNITE-26201 Stop persisting calculated default storage profile size (#6422)
---
 .../storageprofile/ItStorageProfilesTest.java      | 102 ---------------------
 .../pagememory/PersistentPageMemoryDataRegion.java |  26 +++++-
 .../PersistentPageMemoryStorageEngine.java         |  29 ------
 .../pagememory/VolatilePageMemoryDataRegion.java   |  40 +++++++-
 .../VolatilePageMemoryStorageEngine.java           |  44 ---------
 .../PersistentPageMemoryStorageEngineTest.java     |   7 --
 .../VolatilePageMemoryStorageEngineTest.java       |  23 -----
 .../storage/rocksdb/RocksDbStorageEngine.java      |  29 +-----
 .../storage/rocksdb/RocksDbStorageProfile.java     |  35 ++++++-
 .../rocksdb/engine/RocksDbStorageEngineTest.java   |   7 --
 .../instance/SharedRocksDbInstanceTest.java        |   4 +-
 11 files changed, 89 insertions(+), 257 deletions(-)

diff --git 
a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/storageprofile/ItStorageProfilesTest.java
 
b/modules/runner/src/integrationTest/java/org/apache/ignite/internal/storageprofile/ItStorageProfilesTest.java
deleted file mode 100644
index 93382ef3ea4..00000000000
--- 
a/modules/runner/src/integrationTest/java/org/apache/ignite/internal/storageprofile/ItStorageProfilesTest.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.ignite.internal.storageprofile;
-
-import static org.apache.ignite.internal.TestWrappers.unwrapIgniteImpl;
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.hamcrest.Matchers.is;
-import static org.hamcrest.Matchers.notNullValue;
-
-import com.typesafe.config.parser.ConfigDocument;
-import com.typesafe.config.parser.ConfigDocumentFactory;
-import org.apache.ignite.configuration.NamedListView;
-import org.apache.ignite.internal.ClusterPerClassIntegrationTest;
-import org.apache.ignite.internal.app.IgniteImpl;
-import 
org.apache.ignite.internal.storage.configurations.StorageExtensionConfiguration;
-import org.apache.ignite.internal.storage.configurations.StorageProfileView;
-import org.apache.ignite.internal.storage.engine.StorageEngine;
-import 
org.apache.ignite.internal.storage.pagememory.PersistentPageMemoryStorageEngine;
-import 
org.apache.ignite.internal.storage.pagememory.VolatilePageMemoryStorageEngine;
-import 
org.apache.ignite.internal.storage.pagememory.configuration.schema.PersistentPageMemoryProfileView;
-import 
org.apache.ignite.internal.storage.pagememory.configuration.schema.VolatilePageMemoryProfileView;
-import org.apache.ignite.internal.storage.rocksdb.RocksDbStorageEngine;
-import 
org.apache.ignite.internal.storage.rocksdb.configuration.schema.RocksDbProfileView;
-import org.junit.jupiter.api.Test;
-
-/**
- * Test class for validating storage profiles configuration.
- */
-public class ItStorageProfilesTest extends ClusterPerClassIntegrationTest {
-    private static final String AIPERSIST_PROFILE_NAME = 
ItStorageProfilesTest.class.getSimpleName() + "_aipersist";
-    private static final String AIMEM_PROFILE_NAME = 
ItStorageProfilesTest.class.getSimpleName() + "_aimem";
-    private static final String ROCKSDB_PROFILE_NAME = 
ItStorageProfilesTest.class.getSimpleName() + "_rocksdb";
-
-    @Override
-    protected int initialNodes() {
-        return 1;
-    }
-
-    @Override
-    protected String getNodeBootstrapConfigTemplate() {
-        ConfigDocument document = 
ConfigDocumentFactory.parseString(super.getNodeBootstrapConfigTemplate());
-
-        document = document.withValueText(profileKey(ROCKSDB_PROFILE_NAME), 
RocksDbStorageEngine.ENGINE_NAME);
-
-        document = document.withValueText(profileKey(AIPERSIST_PROFILE_NAME), 
PersistentPageMemoryStorageEngine.ENGINE_NAME);
-
-        document = document.withValueText(profileKey(AIMEM_PROFILE_NAME), 
VolatilePageMemoryStorageEngine.ENGINE_NAME);
-
-        return document.render();
-    }
-
-    private static String profileKey(String profileName) {
-        return String.format("ignite.storage.profiles.%s.engine", profileName);
-    }
-
-    /**
-     * Checks that profiles with default values get initialized correctly.
-     */
-    @Test
-    void validateDefaultStorageProfileSettings() {
-        long defaultDataRegionSize = StorageEngine.defaultDataRegionSize();
-
-        IgniteImpl node = unwrapIgniteImpl(CLUSTER.aliveNode());
-
-        NamedListView<StorageProfileView> profilesConfiguration = 
node.nodeConfiguration()
-                .getConfiguration(StorageExtensionConfiguration.KEY)
-                .storage()
-                .profiles()
-                .value();
-
-        var aipersistConfiguration = (PersistentPageMemoryProfileView) 
profilesConfiguration.get(AIPERSIST_PROFILE_NAME);
-
-        assertThat(aipersistConfiguration, is(notNullValue()));
-        assertThat(aipersistConfiguration.sizeBytes(), 
is(defaultDataRegionSize));
-
-        var aimemConfiguration = (VolatilePageMemoryProfileView) 
profilesConfiguration.get(AIMEM_PROFILE_NAME);
-
-        assertThat(aimemConfiguration, is(notNullValue()));
-        assertThat(aimemConfiguration.initSizeBytes(), 
is(defaultDataRegionSize));
-        assertThat(aimemConfiguration.maxSizeBytes(), 
is(defaultDataRegionSize));
-
-        var rocksdbConfiguration = (RocksDbProfileView) 
profilesConfiguration.get(ROCKSDB_PROFILE_NAME);
-
-        assertThat(rocksdbConfiguration, is(notNullValue()));
-        assertThat(rocksdbConfiguration.sizeBytes(), 
is(defaultDataRegionSize));
-    }
-}
diff --git 
a/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/PersistentPageMemoryDataRegion.java
 
b/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/PersistentPageMemoryDataRegion.java
index be1edae8b23..cac367ccfc9 100644
--- 
a/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/PersistentPageMemoryDataRegion.java
+++ 
b/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/PersistentPageMemoryDataRegion.java
@@ -17,6 +17,7 @@
 
 package org.apache.ignite.internal.storage.pagememory;
 
+import static 
org.apache.ignite.internal.storage.configurations.StorageProfileConfigurationSchema.UNSPECIFIED_SIZE;
 import static 
org.apache.ignite.internal.storage.pagememory.PersistentPageMemoryStorageEngine.ENGINE_NAME;
 import static 
org.apache.ignite.internal.storage.pagememory.PersistentPageMemoryStorageEngine.THROTTLING_LOG_THRESHOLD_SYSTEM_PROPERTY;
 import static 
org.apache.ignite.internal.storage.pagememory.PersistentPageMemoryStorageEngine.THROTTLING_MAX_DIRTY_PAGES_SYSTEM_PROPERTY;
@@ -57,6 +58,7 @@ import 
org.apache.ignite.internal.pagememory.persistence.throttling.PagesWriteTh
 import 
org.apache.ignite.internal.pagememory.persistence.throttling.TargetRatioPagesWriteThrottle;
 import 
org.apache.ignite.internal.pagememory.persistence.throttling.ThrottlingType;
 import org.apache.ignite.internal.storage.StorageException;
+import org.apache.ignite.internal.storage.engine.StorageEngine;
 import 
org.apache.ignite.internal.storage.pagememory.configuration.schema.PersistentPageMemoryProfileConfiguration;
 import 
org.apache.ignite.internal.storage.pagememory.configuration.schema.PersistentPageMemoryProfileView;
 import 
org.apache.ignite.internal.storage.pagememory.mv.PersistentPageMemoryMvPartitionStorage;
@@ -151,12 +153,22 @@ class PersistentPageMemoryDataRegion implements 
DataRegion<PersistentPageMemory>
     public void start() {
         var dataRegionConfigView = (PersistentPageMemoryProfileView) 
cfg.value();
 
+        long sizeBytes = dataRegionConfigView.sizeBytes();
+        if (sizeBytes == UNSPECIFIED_SIZE) {
+            long defaultDataRegionSize = StorageEngine.defaultDataRegionSize();
+
+            LOG.info(
+                    "{}.{} property is not specified, setting its value to {}",
+                    cfg.name().value(), cfg.sizeBytes().key(), 
defaultDataRegionSize
+            );
+        }
+
         PersistentPageMemory pageMemory = new PersistentPageMemory(
-                regionConfiguration(dataRegionConfigView, pageSize),
+                regionConfiguration(dataRegionConfigView, sizeBytes, pageSize),
                 metricSource,
                 ioRegistry,
-                calculateSegmentSizes(dataRegionConfigView.sizeBytes(), 
Runtime.getRuntime().availableProcessors()),
-                
calculateCheckpointBufferSize(dataRegionConfigView.sizeBytes()),
+                calculateSegmentSizes(sizeBytes, 
Runtime.getRuntime().availableProcessors()),
+                calculateCheckpointBufferSize(sizeBytes),
                 filePageStoreManager,
                 this::flushDirtyPageOnReplacement,
                 checkpointManager.checkpointTimeoutLock(),
@@ -177,11 +189,15 @@ class PersistentPageMemoryDataRegion implements 
DataRegion<PersistentPageMemory>
         this.pageMemory = pageMemory;
     }
 
-    private static PersistentDataRegionConfiguration 
regionConfiguration(PersistentPageMemoryProfileView cfg, int pageSize) {
+    private static PersistentDataRegionConfiguration regionConfiguration(
+            PersistentPageMemoryProfileView cfg,
+            long sizeBytes,
+            int pageSize
+    ) {
         return PersistentDataRegionConfiguration.builder()
                 .name(cfg.name())
                 .pageSize(pageSize)
-                .size(cfg.sizeBytes())
+                .size(sizeBytes)
                 
.replacementMode(ReplacementMode.valueOf(cfg.replacementMode()))
                 .build();
     }
diff --git 
a/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/PersistentPageMemoryStorageEngine.java
 
b/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/PersistentPageMemoryStorageEngine.java
index 1e9cee00c47..38318a9f7c3 100644
--- 
a/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/PersistentPageMemoryStorageEngine.java
+++ 
b/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/PersistentPageMemoryStorageEngine.java
@@ -18,7 +18,6 @@
 package org.apache.ignite.internal.storage.pagememory;
 
 import static java.util.Objects.requireNonNull;
-import static 
org.apache.ignite.internal.storage.configurations.StorageProfileConfigurationSchema.UNSPECIFIED_SIZE;
 import static org.apache.ignite.internal.util.IgniteUtils.closeAll;
 import static 
org.apache.ignite.internal.util.IgniteUtils.shutdownAndAwaitTermination;
 
@@ -26,15 +25,12 @@ import java.io.IOException;
 import java.nio.file.Path;
 import java.util.Map;
 import java.util.Set;
-import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ExecutionException;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.LinkedBlockingQueue;
 import java.util.concurrent.ThreadPoolExecutor;
 import java.util.concurrent.TimeUnit;
 import java.util.stream.Stream;
-import org.apache.ignite.configuration.ConfigurationValue;
 import org.apache.ignite.internal.components.LogSyncer;
 import org.apache.ignite.internal.components.LongJvmPauseDetector;
 import org.apache.ignite.internal.configuration.SystemLocalConfiguration;
@@ -58,7 +54,6 @@ import org.apache.ignite.internal.storage.StorageException;
 import org.apache.ignite.internal.storage.configurations.StorageConfiguration;
 import org.apache.ignite.internal.storage.configurations.StorageProfileView;
 import org.apache.ignite.internal.storage.engine.MvTableStorage;
-import org.apache.ignite.internal.storage.engine.StorageEngine;
 import org.apache.ignite.internal.storage.engine.StorageTableDescriptor;
 import org.apache.ignite.internal.storage.index.StorageIndexDescriptorSupplier;
 import 
org.apache.ignite.internal.storage.pagememory.configuration.schema.PageMemoryCheckpointConfiguration;
@@ -354,8 +349,6 @@ public class PersistentPageMemoryStorageEngine extends 
AbstractPageMemoryStorage
      * Creates, starts and adds a new data region to the engine.
      */
     private void addDataRegion(PersistentPageMemoryProfileConfiguration 
storageProfileConfiguration) {
-        initDataRegionSize(storageProfileConfiguration);
-
         int pageSize = engineConfig.pageSizeBytes().value();
 
         PersistentPageMemoryDataRegion dataRegion = new 
PersistentPageMemoryDataRegion(
@@ -374,28 +367,6 @@ public class PersistentPageMemoryStorageEngine extends 
AbstractPageMemoryStorage
         regions.put(storageProfileConfiguration.name().value(), dataRegion);
     }
 
-    private static void 
initDataRegionSize(PersistentPageMemoryProfileConfiguration 
storageProfileConfiguration) {
-        ConfigurationValue<Long> dataRegionSize = 
storageProfileConfiguration.sizeBytes();
-
-        if (dataRegionSize.value() == UNSPECIFIED_SIZE) {
-            long defaultDataRegionSize = StorageEngine.defaultDataRegionSize();
-
-            CompletableFuture<Void> updateFuture = 
dataRegionSize.update(defaultDataRegionSize);
-
-            // Node local configuration is synchronous, wait just in case.
-            try {
-                updateFuture.get();
-            } catch (InterruptedException | ExecutionException e) {
-                throw new StorageException(e);
-            }
-
-            LOG.info(
-                    "{}.{} property is not specified, setting its value to {}",
-                    storageProfileConfiguration.name().value(), 
dataRegionSize.key(), defaultDataRegionSize
-            );
-        }
-    }
-
     @Override
     public Set<Integer> tableIdsOnDisk() {
         return requireNonNull(filePageStoreManager, "Not 
started").allGroupIdsOnFs();
diff --git 
a/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/VolatilePageMemoryDataRegion.java
 
b/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/VolatilePageMemoryDataRegion.java
index 1b0705e6397..2669fb37c1d 100644
--- 
a/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/VolatilePageMemoryDataRegion.java
+++ 
b/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/VolatilePageMemoryDataRegion.java
@@ -18,10 +18,13 @@
 package org.apache.ignite.internal.storage.pagememory;
 
 import static org.apache.ignite.internal.pagememory.PageIdAllocator.FLAG_AUX;
+import static 
org.apache.ignite.internal.storage.configurations.StorageProfileConfigurationSchema.UNSPECIFIED_SIZE;
 import static org.apache.ignite.internal.util.IgniteUtils.closeAllManually;
 
 import org.apache.ignite.internal.lang.IgniteInternalCheckedException;
 import org.apache.ignite.internal.lang.IgniteSystemProperties;
+import org.apache.ignite.internal.logger.IgniteLogger;
+import org.apache.ignite.internal.logger.Loggers;
 import org.apache.ignite.internal.pagememory.DataRegion;
 import org.apache.ignite.internal.pagememory.PageMemory;
 import 
org.apache.ignite.internal.pagememory.configuration.VolatileDataRegionConfiguration;
@@ -30,6 +33,7 @@ import 
org.apache.ignite.internal.pagememory.inmemory.VolatilePageMemory;
 import org.apache.ignite.internal.pagememory.io.PageIoRegistry;
 import org.apache.ignite.internal.pagememory.reuse.ReuseList;
 import org.apache.ignite.internal.storage.StorageException;
+import org.apache.ignite.internal.storage.engine.StorageEngine;
 import 
org.apache.ignite.internal.storage.pagememory.configuration.schema.VolatilePageMemoryProfileConfiguration;
 import 
org.apache.ignite.internal.storage.pagememory.configuration.schema.VolatilePageMemoryProfileView;
 import org.apache.ignite.internal.util.OffheapReadWriteLock;
@@ -38,6 +42,9 @@ import org.apache.ignite.internal.util.OffheapReadWriteLock;
  * Implementation of {@link DataRegion} for in-memory case.
  */
 public class VolatilePageMemoryDataRegion implements 
DataRegion<VolatilePageMemory> {
+    /** Logger. */
+    private static final IgniteLogger LOG = 
Loggers.forClass(VolatilePageMemoryDataRegion.class);
+
     /** Ignite page memory concurrency level. */
     private static final String IGNITE_OFFHEAP_LOCK_CONCURRENCY_LEVEL = 
"IGNITE_OFFHEAP_LOCK_CONCURRENCY_LEVEL";
 
@@ -82,7 +89,7 @@ public class VolatilePageMemoryDataRegion implements 
DataRegion<VolatilePageMemo
                 
Integer.highestOneBit(Runtime.getRuntime().availableProcessors() * 4)
         );
 
-        VolatileDataRegionConfiguration cfg = 
regionConfiguration((VolatilePageMemoryProfileView) this.cfg.value(), pageSize);
+        VolatileDataRegionConfiguration cfg = regionConfiguration(this.cfg, 
pageSize);
         var pageMemory = new VolatilePageMemory(cfg, ioRegistry, new 
OffheapReadWriteLock(lockConcLvl));
 
         pageMemory.start();
@@ -96,12 +103,35 @@ public class VolatilePageMemoryDataRegion implements 
DataRegion<VolatilePageMemo
         this.pageMemory = pageMemory;
     }
 
-    private static VolatileDataRegionConfiguration 
regionConfiguration(VolatilePageMemoryProfileView cfg, int pageSize) {
+    private static VolatileDataRegionConfiguration 
regionConfiguration(VolatilePageMemoryProfileConfiguration cfg, int pageSize) {
+        var cfgView = (VolatilePageMemoryProfileView) cfg.value();
+
+        long initSize = cfgView.initSizeBytes();
+        long maxSize = cfgView.maxSizeBytes();
+
+        if (maxSize == UNSPECIFIED_SIZE) {
+            maxSize = StorageEngine.defaultDataRegionSize();
+
+            LOG.info(
+                    "{}.{} property is not specified, setting its value to {}",
+                    cfg.name().value(), cfg.maxSizeBytes().key(), maxSize
+            );
+        }
+
+        if (initSize == UNSPECIFIED_SIZE) {
+            initSize = maxSize;
+
+            LOG.info(
+                    "{}.{} property is not specified, setting its value to {}",
+                    cfg.name().value(), cfg.initSizeBytes().key(), maxSize
+            );
+        }
+
         return VolatileDataRegionConfiguration.builder()
-                .name(cfg.name())
+                .name(cfgView.name())
                 .pageSize(pageSize)
-                .initSize(cfg.initSizeBytes())
-                .maxSize(cfg.maxSizeBytes())
+                .initSize(initSize)
+                .maxSize(maxSize)
                 .build();
     }
 
diff --git 
a/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/VolatilePageMemoryStorageEngine.java
 
b/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/VolatilePageMemoryStorageEngine.java
index 26f587b5299..59e16b38d08 100644
--- 
a/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/VolatilePageMemoryStorageEngine.java
+++ 
b/modules/storage-page-memory/src/main/java/org/apache/ignite/internal/storage/pagememory/VolatilePageMemoryStorageEngine.java
@@ -18,21 +18,17 @@
 package org.apache.ignite.internal.storage.pagememory;
 
 import static java.util.Collections.emptySet;
-import static 
org.apache.ignite.internal.storage.configurations.StorageProfileConfigurationSchema.UNSPECIFIED_SIZE;
 import static org.apache.ignite.internal.util.IgniteUtils.closeAll;
 import static 
org.apache.ignite.internal.util.IgniteUtils.shutdownAndAwaitTermination;
 
 import java.util.Map;
 import java.util.Set;
-import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ExecutionException;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.LinkedBlockingQueue;
 import java.util.concurrent.ThreadPoolExecutor;
 import java.util.concurrent.TimeUnit;
 import java.util.stream.Stream;
-import org.apache.ignite.configuration.ConfigurationValue;
 import org.apache.ignite.internal.failure.FailureProcessor;
 import org.apache.ignite.internal.hlc.HybridClock;
 import org.apache.ignite.internal.logger.IgniteLogger;
@@ -43,7 +39,6 @@ import org.apache.ignite.internal.pagememory.tree.BplusTree;
 import org.apache.ignite.internal.storage.StorageException;
 import org.apache.ignite.internal.storage.configurations.StorageConfiguration;
 import org.apache.ignite.internal.storage.configurations.StorageProfileView;
-import org.apache.ignite.internal.storage.engine.StorageEngine;
 import org.apache.ignite.internal.storage.engine.StorageTableDescriptor;
 import org.apache.ignite.internal.storage.index.StorageIndexDescriptorSupplier;
 import 
org.apache.ignite.internal.storage.pagememory.configuration.schema.VolatilePageMemoryProfileConfiguration;
@@ -202,8 +197,6 @@ public class VolatilePageMemoryStorageEngine extends 
AbstractPageMemoryStorageEn
      * Creates, starts and adds a new data region to the engine.
      */
     private void addDataRegion(VolatilePageMemoryProfileConfiguration 
storageProfileConfiguration) {
-        initDataRegionSize(storageProfileConfiguration);
-
         int pageSize = engineConfig.pageSizeBytes().value();
 
         VolatilePageMemoryDataRegion dataRegion = new 
VolatilePageMemoryDataRegion(
@@ -216,41 +209,4 @@ public class VolatilePageMemoryStorageEngine extends 
AbstractPageMemoryStorageEn
 
         regions.put(storageProfileConfiguration.name().value(), dataRegion);
     }
-
-    private static void 
initDataRegionSize(VolatilePageMemoryProfileConfiguration 
storageProfileConfiguration) {
-        ConfigurationValue<Long> maxSize = 
storageProfileConfiguration.maxSizeBytes();
-
-        if (maxSize.value() == UNSPECIFIED_SIZE) {
-            long defaultDataRegionSize = StorageEngine.defaultDataRegionSize();
-
-            updateConfigValue(maxSize, defaultDataRegionSize);
-
-            LOG.info(
-                    "{}.{} property is not specified, setting its value to {}",
-                    storageProfileConfiguration.name().value(), maxSize.key(), 
defaultDataRegionSize
-            );
-        }
-
-        ConfigurationValue<Long> initSize = 
storageProfileConfiguration.initSizeBytes();
-
-        if (initSize.value() == UNSPECIFIED_SIZE) {
-            updateConfigValue(initSize, maxSize.value());
-
-            LOG.info(
-                    "{}.{} property is not specified, setting its value to {}",
-                    storageProfileConfiguration.name().value(), 
initSize.key(), maxSize.value()
-            );
-        }
-    }
-
-    private static <T> void updateConfigValue(ConfigurationValue<T> config, T 
newValue) {
-        CompletableFuture<Void> updateFuture = config.update(newValue);
-
-        // Node local configuration is synchronous, wait just in case.
-        try {
-            updateFuture.get();
-        } catch (InterruptedException | ExecutionException e) {
-            throw new StorageException(e);
-        }
-    }
 }
diff --git 
a/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/engine/PersistentPageMemoryStorageEngineTest.java
 
b/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/engine/PersistentPageMemoryStorageEngineTest.java
index 94016ec43bd..49742c22cd4 100644
--- 
a/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/engine/PersistentPageMemoryStorageEngineTest.java
+++ 
b/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/engine/PersistentPageMemoryStorageEngineTest.java
@@ -80,13 +80,6 @@ public class PersistentPageMemoryStorageEngineTest extends 
AbstractPersistentSto
         );
     }
 
-    @Test
-    void dataRegionSizeGetsInitialized() {
-        for (StorageProfileView view : storageConfig.profiles().value()) {
-            assertThat(((PersistentPageMemoryProfileView) view).sizeBytes(), 
is(StorageEngine.defaultDataRegionSize()));
-        }
-    }
-
     @Test
     void dataRegionSizeUsedWhenSet(
             @InjectConfiguration("mock.profiles.default {engine = aipersist, 
sizeBytes = 12345}")
diff --git 
a/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/engine/VolatilePageMemoryStorageEngineTest.java
 
b/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/engine/VolatilePageMemoryStorageEngineTest.java
index e377943a778..f402763c296 100644
--- 
a/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/engine/VolatilePageMemoryStorageEngineTest.java
+++ 
b/modules/storage-page-memory/src/test/java/org/apache/ignite/internal/storage/pagememory/engine/VolatilePageMemoryStorageEngineTest.java
@@ -59,14 +59,6 @@ public class VolatilePageMemoryStorageEngineTest extends 
AbstractVolatileStorage
         );
     }
 
-    @Test
-    void dataRegionSizeGetsInitialized() {
-        for (StorageProfileView view : storageConfig.profiles().value()) {
-            assertThat(((VolatilePageMemoryProfileView) view).initSizeBytes(), 
is(StorageEngine.defaultDataRegionSize()));
-            assertThat(((VolatilePageMemoryProfileView) view).maxSizeBytes(), 
is(StorageEngine.defaultDataRegionSize()));
-        }
-    }
-
     @Test
     void dataRegionSizeUsedWhenSet(
             @InjectConfiguration("mock.profiles.default {engine = aimem, 
maxSizeBytes = 12345000, initSizeBytes = 123000}")
@@ -81,19 +73,4 @@ public class VolatilePageMemoryStorageEngineTest extends 
AbstractVolatileStorage
             assertThat(((VolatilePageMemoryProfileView) view).maxSizeBytes(), 
is(12345000L));
         }
     }
-
-    @Test
-    void initSizeSetToMaxSizeByDefault(
-            @InjectConfiguration("mock.profiles.default {engine = aimem, 
maxSizeBytes = 12345000}")
-            StorageConfiguration storageConfig
-    ) {
-        StorageEngine anotherEngine = createEngine(storageConfig);
-
-        anotherEngine.start();
-
-        for (StorageProfileView view : storageConfig.profiles().value()) {
-            assertThat(((VolatilePageMemoryProfileView) view).initSizeBytes(), 
is(12345000L));
-            assertThat(((VolatilePageMemoryProfileView) view).maxSizeBytes(), 
is(12345000L));
-        }
-    }
 }
diff --git 
a/modules/storage-rocksdb/src/main/java/org/apache/ignite/internal/storage/rocksdb/RocksDbStorageEngine.java
 
b/modules/storage-rocksdb/src/main/java/org/apache/ignite/internal/storage/rocksdb/RocksDbStorageEngine.java
index 9d74d2e5b59..27bea4a9f69 100644
--- 
a/modules/storage-rocksdb/src/main/java/org/apache/ignite/internal/storage/rocksdb/RocksDbStorageEngine.java
+++ 
b/modules/storage-rocksdb/src/main/java/org/apache/ignite/internal/storage/rocksdb/RocksDbStorageEngine.java
@@ -19,7 +19,6 @@ package org.apache.ignite.internal.storage.rocksdb;
 
 import static java.util.concurrent.CompletableFuture.allOf;
 import static java.util.stream.Collectors.toUnmodifiableSet;
-import static 
org.apache.ignite.internal.storage.configurations.StorageProfileConfigurationSchema.UNSPECIFIED_SIZE;
 import static org.apache.ignite.internal.util.IgniteUtils.closeAll;
 import static org.apache.ignite.internal.util.IgniteUtils.closeAllManually;
 import static 
org.apache.ignite.internal.util.IgniteUtils.shutdownAndAwaitTermination;
@@ -29,12 +28,10 @@ import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ExecutionException;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.TimeUnit;
-import org.apache.ignite.configuration.ConfigurationValue;
 import org.apache.ignite.internal.close.ManuallyCloseable;
 import org.apache.ignite.internal.components.LogSyncer;
 import org.apache.ignite.internal.failure.FailureProcessor;
@@ -185,11 +182,9 @@ public class RocksDbStorageEngine implements StorageEngine 
{
     }
 
     private void registerProfile(RocksDbProfileConfiguration profileConfig) {
-        initDataRegionSize(profileConfig);
-
         String profileName = profileConfig.name().value();
 
-        var profile = new RocksDbStorageProfile((RocksDbProfileView) 
profileConfig.value());
+        var profile = new RocksDbStorageProfile(profileConfig);
 
         profile.start();
 
@@ -200,28 +195,6 @@ public class RocksDbStorageEngine implements StorageEngine 
{
         assert previousStorage == null : "Storage already exists for profile: 
" + profileName;
     }
 
-    private static void initDataRegionSize(RocksDbProfileConfiguration 
storageProfileConfiguration) {
-        ConfigurationValue<Long> dataRegionSize = 
storageProfileConfiguration.sizeBytes();
-
-        if (dataRegionSize.value() == UNSPECIFIED_SIZE) {
-            long defaultDataRegionSize = StorageEngine.defaultDataRegionSize();
-
-            CompletableFuture<Void> updateFuture = 
dataRegionSize.update(defaultDataRegionSize);
-
-            // Node local configuration is synchronous, wait just in case.
-            try {
-                updateFuture.get();
-            } catch (InterruptedException | ExecutionException e) {
-                throw new StorageException(e);
-            }
-
-            LOG.info(
-                    "{}.{} property is not specified, setting its value to {}",
-                    storageProfileConfiguration.name().value(), 
dataRegionSize.key(), defaultDataRegionSize
-            );
-        }
-    }
-
     private SharedRocksDbInstance newRocksDbInstance(String profileName, 
RocksDbStorageProfile profile) {
         Path dbPath = storagePath.resolve("rocksdb-" + profileName);
 
diff --git 
a/modules/storage-rocksdb/src/main/java/org/apache/ignite/internal/storage/rocksdb/RocksDbStorageProfile.java
 
b/modules/storage-rocksdb/src/main/java/org/apache/ignite/internal/storage/rocksdb/RocksDbStorageProfile.java
index bea45eb8545..5d4068d8495 100644
--- 
a/modules/storage-rocksdb/src/main/java/org/apache/ignite/internal/storage/rocksdb/RocksDbStorageProfile.java
+++ 
b/modules/storage-rocksdb/src/main/java/org/apache/ignite/internal/storage/rocksdb/RocksDbStorageProfile.java
@@ -17,6 +17,12 @@
 
 package org.apache.ignite.internal.storage.rocksdb;
 
+import static 
org.apache.ignite.internal.storage.configurations.StorageProfileConfigurationSchema.UNSPECIFIED_SIZE;
+
+import org.apache.ignite.internal.logger.IgniteLogger;
+import org.apache.ignite.internal.logger.Loggers;
+import org.apache.ignite.internal.storage.engine.StorageEngine;
+import 
org.apache.ignite.internal.storage.rocksdb.configuration.schema.RocksDbProfileConfiguration;
 import 
org.apache.ignite.internal.storage.rocksdb.configuration.schema.RocksDbProfileView;
 import org.apache.ignite.internal.util.IgniteUtils;
 import org.rocksdb.Cache;
@@ -27,8 +33,11 @@ import org.rocksdb.WriteBufferManager;
  * Storage profile implementation for {@link RocksDbStorageEngine}. Based on a 
{@link Cache}.
  */
 public class RocksDbStorageProfile {
+    /** Logger. */
+    private static final IgniteLogger LOG = 
Loggers.forClass(RocksDbStorageProfile.class);
+
     /** Profile configuration view. */
-    private final RocksDbProfileView storageProfileConfig;
+    private final RocksDbProfileConfiguration storageProfileConfig;
 
     /** RocksDB cache instance. */
     private Cache cache;
@@ -41,7 +50,7 @@ public class RocksDbStorageProfile {
      *
      * @param storageProfileConfig Storage profile configuration view.
      */
-    public RocksDbStorageProfile(RocksDbProfileView storageProfileConfig) {
+    public RocksDbStorageProfile(RocksDbProfileConfiguration 
storageProfileConfig) {
         this.storageProfileConfig = storageProfileConfig;
     }
 
@@ -49,20 +58,36 @@ public class RocksDbStorageProfile {
      * Start the profile.
      */
     public void start() {
-        long writeBufferSize = storageProfileConfig.writeBufferSizeBytes();
+        long writeBufferSize = 
storageProfileConfig.writeBufferSizeBytes().value();
 
-        long totalCacheSize = storageProfileConfig.sizeBytes() + 
writeBufferSize;
+        long totalCacheSize = sizeBytes() + writeBufferSize;
 
         cache = new LRUCache(totalCacheSize, -1, false);
 
         writeBufferManager = new WriteBufferManager(writeBufferSize, cache);
     }
 
+    private long sizeBytes() {
+        var storageProfileConfigView = (RocksDbProfileView) 
storageProfileConfig.value();
+        long dataRegionSize = storageProfileConfigView.sizeBytes();
+
+        if (dataRegionSize == UNSPECIFIED_SIZE) {
+            dataRegionSize = StorageEngine.defaultDataRegionSize();
+
+            LOG.info(
+                    "{}.{} property is not specified, setting its value to {}",
+                    storageProfileConfigView.name(), 
storageProfileConfig.writeBufferSizeBytes().key(), dataRegionSize
+            );
+        }
+
+        return dataRegionSize;
+    }
+
     /**
      * Returns profile name.
      */
     public String name() {
-        return storageProfileConfig.name();
+        return storageProfileConfig.value().name();
     }
 
     /**
diff --git 
a/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/engine/RocksDbStorageEngineTest.java
 
b/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/engine/RocksDbStorageEngineTest.java
index 1d9ddeef024..a22f19ffafc 100644
--- 
a/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/engine/RocksDbStorageEngineTest.java
+++ 
b/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/engine/RocksDbStorageEngineTest.java
@@ -76,13 +76,6 @@ public class RocksDbStorageEngineTest extends 
AbstractPersistentStorageEngineTes
         assertThat(((RocksDbStorageEngine) storageEngine).flush(), 
willCompleteSuccessfully());
     }
 
-    @Test
-    void dataRegionSizeGetsInitialized() {
-        for (StorageProfileView view : 
storageConfiguration.profiles().value()) {
-            assertThat(((RocksDbProfileView) view).sizeBytes(), 
is(StorageEngine.defaultDataRegionSize()));
-        }
-    }
-
     @Test
     void dataRegionSizeUsedWhenSet(
             @InjectConfiguration("mock.profiles.default {engine = rocksdb, 
sizeBytes = 12345}")
diff --git 
a/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/instance/SharedRocksDbInstanceTest.java
 
b/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/instance/SharedRocksDbInstanceTest.java
index df13504456e..ba3b7a7f261 100644
--- 
a/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/instance/SharedRocksDbInstanceTest.java
+++ 
b/modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/instance/SharedRocksDbInstanceTest.java
@@ -53,7 +53,7 @@ import 
org.apache.ignite.internal.storage.configurations.StorageConfiguration;
 import 
org.apache.ignite.internal.storage.index.StorageSortedIndexDescriptor.StorageSortedIndexColumnDescriptor;
 import org.apache.ignite.internal.storage.rocksdb.RocksDbStorageEngine;
 import org.apache.ignite.internal.storage.rocksdb.RocksDbStorageProfile;
-import 
org.apache.ignite.internal.storage.rocksdb.configuration.schema.RocksDbProfileView;
+import 
org.apache.ignite.internal.storage.rocksdb.configuration.schema.RocksDbProfileConfiguration;
 import org.apache.ignite.internal.testframework.ExecutorServiceExtension;
 import org.apache.ignite.internal.testframework.IgniteAbstractTest;
 import org.apache.ignite.internal.testframework.InjectExecutorService;
@@ -99,7 +99,7 @@ class SharedRocksDbInstanceTest extends IgniteAbstractTest {
 
         engine.start();
 
-        var profileConfig = (RocksDbProfileView) 
storageConfiguration.profiles().get("default").value();
+        var profileConfig = (RocksDbProfileConfiguration) 
storageConfiguration.profiles().get("default");
 
         storageProfile = new RocksDbStorageProfile(profileConfig);
 


Reply via email to