Erixonich commented on a change in pull request #9612:
URL: https://github.com/apache/ignite/pull/9612#discussion_r762022578



##########
File path: 
modules/core/src/main/java/org/apache/ignite/configuration/SystemDataRegionConfiguration.java
##########
@@ -0,0 +1,93 @@
+/*
+ * 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.configuration;
+
+import java.io.Serializable;
+import org.apache.ignite.internal.util.typedef.internal.A;
+
+/**
+ * This class allows defining system data region configuration with various 
parameters for Apache Ignite
+ * page memory (see {@link DataStorageConfiguration}.
+ * This class is similiar to {@link DataRegionConfiguration}, but with 
restricted set of properties.
+ */
+public class SystemDataRegionConfiguration implements Serializable {
+    /** Serial version uid. */
+    private static final long serialVersionUID = 0L;
+
+    /** Default initial size of a memory chunk for the system cache (40 MB). */
+    private static final long DFLT_SYS_REG_INIT_SIZE = 40L * 1024 * 1024;
+
+    /** Default max size of a memory chunk for the system cache (100 MB). */
+    private static final long DFLT_SYS_REG_MAX_SIZE = 100L * 1024 * 1024;
+
+    /** Initial size of a memory chunk reserved for system cache. */
+    private long initSize = DFLT_SYS_REG_INIT_SIZE;
+
+    /** Maximum size of a memory chunk reserved for system cache. */
+    private long maxSize = DFLT_SYS_REG_MAX_SIZE;
+
+    /**
+     * Initial size of a data region reserved for system cache.
+     *
+     * @return Size in bytes.
+     */
+    public long getInitialSize() {
+        return initSize;
+    }
+
+    /**
+     * Sets initial size of a data region reserved for system cache.
+     *
+     * Default value is {@link #DFLT_SYS_REG_INIT_SIZE}
+     *
+     * @param initSize Size in bytes.
+     * @return {@code this} for chaining.
+     */
+    public SystemDataRegionConfiguration setInitialSize(long initSize) {
+        A.ensure(initSize > 0, "System region initial size can not be less 
zero.");
+
+        this.initSize = initSize;
+
+        return this;
+    }
+
+    /**
+     * Maximum data region size reserved for system cache.
+     *
+     * @return Size in bytes.
+     */
+    public long getMaxSize() {
+        return maxSize;
+    }
+
+    /**
+     * Sets maximum data region size reserved for system cache. The total size 
should not be less than 10 MB
+     * due to internal data structures overhead.
+     *
+     * Default value is {@link #DFLT_SYS_REG_MAX_SIZE}.
+     *
+     * @param maxSize Maximum size in bytes for system cache data region.
+     * @return {@code this} for chaining.
+     */
+    public SystemDataRegionConfiguration setMaxSize(long maxSize) {
+        A.ensure(maxSize > 0, "System region max size should be greater that 
zero.");

Review comment:
       yep, thank you!




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to