blob: bfa20048a7d6ea497a3439d562ce56878add6f14 [file] [log] [blame]
/*
* 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 in bytes of a memory chunk for the system cache (40 MB). */
public static final long DFLT_SYS_REG_INIT_SIZE = 40L * 1024 * 1024;
/** Default max size in bytes of a memory chunk for the system cache (100 MB). */
public static final long DFLT_SYS_REG_MAX_SIZE = 100L * 1024 * 1024;
/** Initial size in bytes of a memory chunk reserved for system cache. */
private long initSize = DFLT_SYS_REG_INIT_SIZE;
/** Maximum size in bytes 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 should be greater than zero.");
this.initSize = initSize;
return this;
}
/**
* Maximum data region size in bytes reserved for system cache.
*
* @return Size in bytes.
*/
public long getMaxSize() {
return maxSize;
}
/**
* Sets maximum data region size in bytes 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 than zero.");
this.maxSize = maxSize;
return this;
}
}