org.apache.flink.runtime.state.gemini.engine.page.MapSplitConfig Maven / Gradle / Ivy
/*
* 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.flink.runtime.state.gemini.engine.page;
import org.apache.flink.util.MathUtils;
/**
* The config information of map split.
*/
public class MapSplitConfig {
/** indicates whether map split is enabled on the data page.**/
private final boolean mapSplitEnabled;
/** the size threshold of map split **/
private final int mapSplitSizeThreshold;
/** the size of sub map if a map occur map split **/
private final int subMapSize;
/** the max number of sub maps **/
private final int maxSubMapNum;
public MapSplitConfig(
boolean mapSplitEnabled,
int mapSplitSizeThreshold,
int subMapSize,
int maxSubMapNum) {
this.mapSplitEnabled = mapSplitEnabled;
this.mapSplitSizeThreshold = mapSplitSizeThreshold;
this.subMapSize = subMapSize;
this.maxSubMapNum = MathUtils.roundDownToPowerOf2(maxSubMapNum);
}
public MapSplitConfig(boolean mapSplitEnabled, int mapSplitSizeThreshold, int subMapSize) {
this(mapSplitEnabled, mapSplitSizeThreshold, subMapSize, Integer.MAX_VALUE);
}
public boolean isMapSplitEnabled() {
return mapSplitEnabled;
}
public int getMapSplitSizeThreshold() {
return mapSplitSizeThreshold;
}
public int getSubMapSize() {
return subMapSize;
}
public int getMaxSubMapNum() {
return maxSubMapNum;
}
}