[fix](compaction) time series compaction policy -> compact consecutive empty rowsets (#27299)
Sometimes we need to merge a large number of empty versions to reduce meta-information.
This commit is contained in:
@ -505,7 +505,9 @@ public class Alter {
|
||||
|| properties
|
||||
.containsKey(PropertyAnalyzer.PROPERTIES_DISABLE_AUTO_COMPACTION)
|
||||
|| properties
|
||||
.containsKey(PropertyAnalyzer.PROPERTIES_SKIP_WRITE_INDEX_ON_LOAD));
|
||||
.containsKey(PropertyAnalyzer.PROPERTIES_SKIP_WRITE_INDEX_ON_LOAD)
|
||||
|| properties
|
||||
.containsKey(PropertyAnalyzer.PROPERTIES_TIME_SERIES_COMPACTION_EMPTY_ROWSETS_THRESHOLD));
|
||||
((SchemaChangeHandler) schemaChangeHandler).updateTableProperties(db, tableName, properties);
|
||||
} else {
|
||||
throw new DdlException("Invalid alter operation: " + alterClause.getOpType());
|
||||
|
||||
@ -274,6 +274,7 @@ public class RollupJobV2 extends AlterJobV2 implements GsonPostProcessable {
|
||||
tbl.getTimeSeriesCompactionGoalSizeMbytes(),
|
||||
tbl.getTimeSeriesCompactionFileCountThreshold(),
|
||||
tbl.getTimeSeriesCompactionTimeThresholdSeconds(),
|
||||
tbl.getTimeSeriesCompactionEmptyRowsetsThreshold(),
|
||||
tbl.storeRowColumn(),
|
||||
binlogConfig);
|
||||
createReplicaTask.setBaseTablet(tabletIdMap.get(rollupTabletId), baseSchemaHash);
|
||||
|
||||
@ -2201,6 +2201,13 @@ public class SchemaChangeHandler extends AlterHandler {
|
||||
.get(PropertyAnalyzer.PROPERTIES_TIME_SERIES_COMPACTION_TIME_THRESHOLD_SECONDS)));
|
||||
}
|
||||
|
||||
if (properties.containsKey(PropertyAnalyzer.PROPERTIES_TIME_SERIES_COMPACTION_EMPTY_ROWSETS_THRESHOLD)) {
|
||||
timeSeriesCompactionConfig
|
||||
.put(PropertyAnalyzer.PROPERTIES_TIME_SERIES_COMPACTION_EMPTY_ROWSETS_THRESHOLD,
|
||||
Long.parseLong(properties
|
||||
.get(PropertyAnalyzer.PROPERTIES_TIME_SERIES_COMPACTION_EMPTY_ROWSETS_THRESHOLD)));
|
||||
}
|
||||
|
||||
if (isInMemory < 0 && storagePolicyId < 0 && compactionPolicy == null && timeSeriesCompactionConfig.isEmpty()
|
||||
&& !properties.containsKey(PropertyAnalyzer.PROPERTIES_IS_BEING_SYNCED)
|
||||
&& !properties.containsKey(PropertyAnalyzer.PROPERTIES_ENABLE_SINGLE_REPLICA_COMPACTION)
|
||||
|
||||
@ -282,6 +282,7 @@ public class SchemaChangeJobV2 extends AlterJobV2 {
|
||||
tbl.getTimeSeriesCompactionGoalSizeMbytes(),
|
||||
tbl.getTimeSeriesCompactionFileCountThreshold(),
|
||||
tbl.getTimeSeriesCompactionTimeThresholdSeconds(),
|
||||
tbl.getTimeSeriesCompactionEmptyRowsetsThreshold(),
|
||||
tbl.storeRowColumn(),
|
||||
binlogConfig);
|
||||
|
||||
|
||||
@ -206,6 +206,22 @@ public class ModifyTablePropertiesClause extends AlterTableClause {
|
||||
}
|
||||
this.needTableStable = false;
|
||||
this.opType = AlterOpType.MODIFY_TABLE_PROPERTY_SYNC;
|
||||
} else if (properties.containsKey(PropertyAnalyzer.PROPERTIES_TIME_SERIES_COMPACTION_EMPTY_ROWSETS_THRESHOLD)) {
|
||||
long emptyRowsetsThreshold;
|
||||
String emptyRowsetsThresholdStr = properties
|
||||
.get(PropertyAnalyzer.PROPERTIES_TIME_SERIES_COMPACTION_EMPTY_ROWSETS_THRESHOLD);
|
||||
try {
|
||||
emptyRowsetsThreshold = Long.parseLong(emptyRowsetsThresholdStr);
|
||||
if (emptyRowsetsThreshold < 2) {
|
||||
throw new AnalysisException("time_series_compaction_empty_rowsets_threshold can not be less than 2:"
|
||||
+ emptyRowsetsThresholdStr);
|
||||
}
|
||||
} catch (NumberFormatException e) {
|
||||
throw new AnalysisException("Invalid time_series_compaction_empty_rowsets_threshold format: "
|
||||
+ emptyRowsetsThresholdStr);
|
||||
}
|
||||
this.needTableStable = false;
|
||||
this.opType = AlterOpType.MODIFY_TABLE_PROPERTY_SYNC;
|
||||
} else if (properties.containsKey(PropertyAnalyzer.PROPERTIES_SKIP_WRITE_INDEX_ON_LOAD)) {
|
||||
if (!properties.get(PropertyAnalyzer.PROPERTIES_SKIP_WRITE_INDEX_ON_LOAD).equalsIgnoreCase("true")
|
||||
&& !properties.get(PropertyAnalyzer
|
||||
|
||||
@ -1069,6 +1069,7 @@ public class RestoreJob extends AbstractJob {
|
||||
localTbl.getTimeSeriesCompactionGoalSizeMbytes(),
|
||||
localTbl.getTimeSeriesCompactionFileCountThreshold(),
|
||||
localTbl.getTimeSeriesCompactionTimeThresholdSeconds(),
|
||||
localTbl.getTimeSeriesCompactionEmptyRowsetsThreshold(),
|
||||
localTbl.storeRowColumn(),
|
||||
binlogConfig);
|
||||
|
||||
|
||||
@ -3357,6 +3357,14 @@ public class Env {
|
||||
sb.append(olapTable.getTimeSeriesCompactionTimeThresholdSeconds()).append("\"");
|
||||
}
|
||||
|
||||
// time series compaction empty rowsets threshold
|
||||
if (olapTable.getCompactionPolicy() != null && olapTable.getCompactionPolicy()
|
||||
.equals(PropertyAnalyzer.TIME_SERIES_COMPACTION_POLICY)) {
|
||||
sb.append(",\n\"").append(PropertyAnalyzer
|
||||
.PROPERTIES_TIME_SERIES_COMPACTION_EMPTY_ROWSETS_THRESHOLD).append("\" = \"");
|
||||
sb.append(olapTable.getTimeSeriesCompactionEmptyRowsetsThreshold()).append("\"");
|
||||
}
|
||||
|
||||
// disable auto compaction
|
||||
sb.append(",\n\"").append(PropertyAnalyzer.PROPERTIES_DISABLE_AUTO_COMPACTION).append("\" = \"");
|
||||
sb.append(olapTable.disableAutoCompaction()).append("\"");
|
||||
@ -4771,7 +4779,8 @@ public class Env {
|
||||
.buildTimeSeriesCompactionTimeThresholdSeconds()
|
||||
.buildSkipWriteIndexOnLoad()
|
||||
.buildDisableAutoCompaction()
|
||||
.buildEnableSingleReplicaCompaction();
|
||||
.buildEnableSingleReplicaCompaction()
|
||||
.buildTimeSeriesCompactionEmptyRowsetsThreshold();
|
||||
|
||||
// need to update partition info meta
|
||||
for (Partition partition : table.getPartitions()) {
|
||||
|
||||
@ -2077,6 +2077,20 @@ public class OlapTable extends Table {
|
||||
return null;
|
||||
}
|
||||
|
||||
public void setTimeSeriesCompactionEmptyRowsetsThreshold(long timeSeriesCompactionEmptyRowsetsThreshold) {
|
||||
TableProperty tableProperty = getOrCreatTableProperty();
|
||||
tableProperty.modifyTableProperties(PropertyAnalyzer.PROPERTIES_TIME_SERIES_COMPACTION_EMPTY_ROWSETS_THRESHOLD,
|
||||
Long.valueOf(timeSeriesCompactionEmptyRowsetsThreshold).toString());
|
||||
tableProperty.buildTimeSeriesCompactionEmptyRowsetsThreshold();
|
||||
}
|
||||
|
||||
public Long getTimeSeriesCompactionEmptyRowsetsThreshold() {
|
||||
if (tableProperty != null) {
|
||||
return tableProperty.timeSeriesCompactionEmptyRowsetsThreshold();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public int getBaseSchemaVersion() {
|
||||
MaterializedIndexMeta baseIndexMeta = indexIdToMeta.get(baseIndexId);
|
||||
return baseIndexMeta.getSchemaVersion();
|
||||
|
||||
@ -97,6 +97,9 @@ public class TableProperty implements Writable {
|
||||
private long timeSeriesCompactionTimeThresholdSeconds
|
||||
= PropertyAnalyzer.TIME_SERIES_COMPACTION_TIME_THRESHOLD_SECONDS_DEFAULT_VALUE;
|
||||
|
||||
private long timeSeriesCompactionEmptyRowsetsThreshold
|
||||
= PropertyAnalyzer.TIME_SERIES_COMPACTION_EMPTY_ROWSETS_THRESHOLD_DEFAULT_VALUE;
|
||||
|
||||
private DataSortInfo dataSortInfo = new DataSortInfo();
|
||||
|
||||
public TableProperty(Map<String, String> properties) {
|
||||
@ -132,6 +135,7 @@ public class TableProperty implements Writable {
|
||||
buildSkipWriteIndexOnLoad();
|
||||
buildEnableSingleReplicaCompaction();
|
||||
buildDisableAutoCompaction();
|
||||
buildTimeSeriesCompactionEmptyRowsetsThreshold();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@ -278,6 +282,17 @@ public class TableProperty implements Writable {
|
||||
return timeSeriesCompactionTimeThresholdSeconds;
|
||||
}
|
||||
|
||||
public TableProperty buildTimeSeriesCompactionEmptyRowsetsThreshold() {
|
||||
timeSeriesCompactionEmptyRowsetsThreshold = Long.parseLong(properties
|
||||
.getOrDefault(PropertyAnalyzer.PROPERTIES_TIME_SERIES_COMPACTION_EMPTY_ROWSETS_THRESHOLD,
|
||||
String.valueOf(PropertyAnalyzer.TIME_SERIES_COMPACTION_EMPTY_ROWSETS_THRESHOLD_DEFAULT_VALUE)));
|
||||
return this;
|
||||
}
|
||||
|
||||
public long timeSeriesCompactionEmptyRowsetsThreshold() {
|
||||
return timeSeriesCompactionEmptyRowsetsThreshold;
|
||||
}
|
||||
|
||||
public TableProperty buildMinLoadReplicaNum() {
|
||||
minLoadReplicaNum = Short.parseShort(
|
||||
properties.getOrDefault(PropertyAnalyzer.PROPERTIES_MIN_LOAD_REPLICA_NUM, "-1"));
|
||||
@ -528,7 +543,8 @@ public class TableProperty implements Writable {
|
||||
.buildTimeSeriesCompactionFileCountThreshold()
|
||||
.buildTimeSeriesCompactionTimeThresholdSeconds()
|
||||
.buildDisableAutoCompaction()
|
||||
.buildEnableSingleReplicaCompaction();
|
||||
.buildEnableSingleReplicaCompaction()
|
||||
.buildTimeSeriesCompactionEmptyRowsetsThreshold();
|
||||
if (Env.getCurrentEnvJournalVersion() < FeMetaVersion.VERSION_105) {
|
||||
// get replica num from property map and create replica allocation
|
||||
String repNum = tableProperty.properties.remove(PropertyAnalyzer.PROPERTIES_REPLICATION_NUM);
|
||||
|
||||
@ -144,6 +144,10 @@ public class PropertyAnalyzer {
|
||||
|
||||
public static final String PROPERTIES_TIME_SERIES_COMPACTION_TIME_THRESHOLD_SECONDS =
|
||||
"time_series_compaction_time_threshold_seconds";
|
||||
|
||||
public static final String PROPERTIES_TIME_SERIES_COMPACTION_EMPTY_ROWSETS_THRESHOLD =
|
||||
"time_series_compaction_empty_rowsets_threshold";
|
||||
|
||||
public static final String PROPERTIES_MUTABLE = "mutable";
|
||||
|
||||
public static final String PROPERTIES_IS_BEING_SYNCED = "is_being_synced";
|
||||
@ -182,6 +186,7 @@ public class PropertyAnalyzer {
|
||||
public static final long TIME_SERIES_COMPACTION_GOAL_SIZE_MBYTES_DEFAULT_VALUE = 1024;
|
||||
public static final long TIME_SERIES_COMPACTION_FILE_COUNT_THRESHOLD_DEFAULT_VALUE = 2000;
|
||||
public static final long TIME_SERIES_COMPACTION_TIME_THRESHOLD_SECONDS_DEFAULT_VALUE = 3600;
|
||||
public static final long TIME_SERIES_COMPACTION_EMPTY_ROWSETS_THRESHOLD_DEFAULT_VALUE = 5;
|
||||
|
||||
|
||||
/**
|
||||
@ -711,27 +716,28 @@ public class PropertyAnalyzer {
|
||||
return compactionPolicy;
|
||||
}
|
||||
|
||||
public static long analyzeTimeSeriesCompactionGoalSizeMbytes(Map<String, String> properties)
|
||||
public static long analyzeTimeSeriesCompactionEmptyRowsetsThreshold(Map<String, String> properties)
|
||||
throws AnalysisException {
|
||||
long goalSizeMbytes = TIME_SERIES_COMPACTION_GOAL_SIZE_MBYTES_DEFAULT_VALUE;
|
||||
long emptyRowsetsThreshold = TIME_SERIES_COMPACTION_EMPTY_ROWSETS_THRESHOLD_DEFAULT_VALUE;
|
||||
if (properties == null || properties.isEmpty()) {
|
||||
return goalSizeMbytes;
|
||||
return emptyRowsetsThreshold;
|
||||
}
|
||||
if (properties.containsKey(PROPERTIES_TIME_SERIES_COMPACTION_GOAL_SIZE_MBYTES)) {
|
||||
String goalSizeMbytesStr = properties.get(PROPERTIES_TIME_SERIES_COMPACTION_GOAL_SIZE_MBYTES);
|
||||
properties.remove(PROPERTIES_TIME_SERIES_COMPACTION_GOAL_SIZE_MBYTES);
|
||||
if (properties.containsKey(PROPERTIES_TIME_SERIES_COMPACTION_EMPTY_ROWSETS_THRESHOLD)) {
|
||||
String emptyRowsetsThresholdStr = properties
|
||||
.get(PROPERTIES_TIME_SERIES_COMPACTION_EMPTY_ROWSETS_THRESHOLD);
|
||||
properties.remove(PROPERTIES_TIME_SERIES_COMPACTION_EMPTY_ROWSETS_THRESHOLD);
|
||||
try {
|
||||
goalSizeMbytes = Long.parseLong(goalSizeMbytesStr);
|
||||
if (goalSizeMbytes < 10) {
|
||||
throw new AnalysisException("time_series_compaction_goal_size_mbytes can not be"
|
||||
+ " less than 10: " + goalSizeMbytesStr);
|
||||
emptyRowsetsThreshold = Long.parseLong(emptyRowsetsThresholdStr);
|
||||
if (emptyRowsetsThreshold < 2) {
|
||||
throw new AnalysisException("time_series_compaction_empty_rowsets_threshold can not"
|
||||
+ " be less than 2: " + emptyRowsetsThresholdStr);
|
||||
}
|
||||
} catch (NumberFormatException e) {
|
||||
throw new AnalysisException("Invalid time_series_compaction_goal_size_mbytes format: "
|
||||
+ goalSizeMbytesStr);
|
||||
throw new AnalysisException("Invalid time_series_compaction_empty_rowsets_threshold: "
|
||||
+ emptyRowsetsThresholdStr);
|
||||
}
|
||||
}
|
||||
return goalSizeMbytes;
|
||||
return emptyRowsetsThreshold;
|
||||
}
|
||||
|
||||
public static long analyzeTimeSeriesCompactionFileCountThreshold(Map<String, String> properties)
|
||||
@ -781,6 +787,29 @@ public class PropertyAnalyzer {
|
||||
return timeThresholdSeconds;
|
||||
}
|
||||
|
||||
public static long analyzeTimeSeriesCompactionGoalSizeMbytes(Map<String, String> properties)
|
||||
throws AnalysisException {
|
||||
long goalSizeMbytes = TIME_SERIES_COMPACTION_GOAL_SIZE_MBYTES_DEFAULT_VALUE;
|
||||
if (properties == null || properties.isEmpty()) {
|
||||
return goalSizeMbytes;
|
||||
}
|
||||
if (properties.containsKey(PROPERTIES_TIME_SERIES_COMPACTION_GOAL_SIZE_MBYTES)) {
|
||||
String goalSizeMbytesStr = properties.get(PROPERTIES_TIME_SERIES_COMPACTION_GOAL_SIZE_MBYTES);
|
||||
properties.remove(PROPERTIES_TIME_SERIES_COMPACTION_GOAL_SIZE_MBYTES);
|
||||
try {
|
||||
goalSizeMbytes = Long.parseLong(goalSizeMbytesStr);
|
||||
if (goalSizeMbytes < 10) {
|
||||
throw new AnalysisException("time_series_compaction_goal_size_mbytes can not be"
|
||||
+ " less than 10: " + goalSizeMbytesStr);
|
||||
}
|
||||
} catch (NumberFormatException e) {
|
||||
throw new AnalysisException("Invalid time_series_compaction_goal_size_mbytes format: "
|
||||
+ goalSizeMbytesStr);
|
||||
}
|
||||
}
|
||||
return goalSizeMbytes;
|
||||
}
|
||||
|
||||
// analyzeCompressionType will parse the compression type from properties
|
||||
public static TCompressionType analyzeCompressionType(Map<String, String> properties) throws AnalysisException {
|
||||
String compressionType = "";
|
||||
|
||||
@ -1446,6 +1446,10 @@ public class InternalCatalog implements CatalogIf<Database> {
|
||||
properties.put(PropertyAnalyzer.PROPERTIES_TIME_SERIES_COMPACTION_TIME_THRESHOLD_SECONDS,
|
||||
olapTable.getTimeSeriesCompactionTimeThresholdSeconds().toString());
|
||||
}
|
||||
if (!properties.containsKey(PropertyAnalyzer.PROPERTIES_TIME_SERIES_COMPACTION_EMPTY_ROWSETS_THRESHOLD)) {
|
||||
properties.put(PropertyAnalyzer.PROPERTIES_TIME_SERIES_COMPACTION_EMPTY_ROWSETS_THRESHOLD,
|
||||
olapTable.getTimeSeriesCompactionEmptyRowsetsThreshold().toString());
|
||||
}
|
||||
if (!properties.containsKey(PropertyAnalyzer.PROPERTIES_STORAGE_POLICY)) {
|
||||
properties.put(PropertyAnalyzer.PROPERTIES_STORAGE_POLICY, olapTable.getStoragePolicy());
|
||||
}
|
||||
@ -1542,6 +1546,7 @@ public class InternalCatalog implements CatalogIf<Database> {
|
||||
olapTable.getTimeSeriesCompactionGoalSizeMbytes(),
|
||||
olapTable.getTimeSeriesCompactionFileCountThreshold(),
|
||||
olapTable.getTimeSeriesCompactionTimeThresholdSeconds(),
|
||||
olapTable.getTimeSeriesCompactionEmptyRowsetsThreshold(),
|
||||
olapTable.storeRowColumn(),
|
||||
binlogConfig, dataProperty.isStorageMediumSpecified(), null);
|
||||
// TODO cluster key ids
|
||||
@ -1798,6 +1803,7 @@ public class InternalCatalog implements CatalogIf<Database> {
|
||||
boolean enableSingleReplicaCompaction, boolean skipWriteIndexOnLoad,
|
||||
String compactionPolicy, Long timeSeriesCompactionGoalSizeMbytes,
|
||||
Long timeSeriesCompactionFileCountThreshold, Long timeSeriesCompactionTimeThresholdSeconds,
|
||||
Long timeSeriesCompactionEmptyRowsetsThreshold,
|
||||
boolean storeRowColumn, BinlogConfig binlogConfig,
|
||||
boolean isStorageMediumSpecified, List<Integer> clusterKeyIndexes) throws DdlException {
|
||||
// create base index first.
|
||||
@ -1864,6 +1870,7 @@ public class InternalCatalog implements CatalogIf<Database> {
|
||||
disableAutoCompaction, enableSingleReplicaCompaction, skipWriteIndexOnLoad,
|
||||
compactionPolicy, timeSeriesCompactionGoalSizeMbytes,
|
||||
timeSeriesCompactionFileCountThreshold, timeSeriesCompactionTimeThresholdSeconds,
|
||||
timeSeriesCompactionEmptyRowsetsThreshold,
|
||||
storeRowColumn, binlogConfig);
|
||||
|
||||
task.setStorageFormat(storageFormat);
|
||||
@ -2079,7 +2086,9 @@ public class InternalCatalog implements CatalogIf<Database> {
|
||||
&& (properties.containsKey(PropertyAnalyzer.PROPERTIES_TIME_SERIES_COMPACTION_GOAL_SIZE_MBYTES)
|
||||
|| properties.containsKey(PropertyAnalyzer.PROPERTIES_TIME_SERIES_COMPACTION_FILE_COUNT_THRESHOLD)
|
||||
|| properties
|
||||
.containsKey(PropertyAnalyzer.PROPERTIES_TIME_SERIES_COMPACTION_TIME_THRESHOLD_SECONDS))) {
|
||||
.containsKey(PropertyAnalyzer.PROPERTIES_TIME_SERIES_COMPACTION_TIME_THRESHOLD_SECONDS)
|
||||
|| properties
|
||||
.containsKey(PropertyAnalyzer.PROPERTIES_TIME_SERIES_COMPACTION_EMPTY_ROWSETS_THRESHOLD))) {
|
||||
throw new DdlException("only time series compaction policy support for time series config");
|
||||
}
|
||||
|
||||
@ -2116,6 +2125,17 @@ public class InternalCatalog implements CatalogIf<Database> {
|
||||
}
|
||||
olapTable.setTimeSeriesCompactionTimeThresholdSeconds(timeSeriesCompactionTimeThresholdSeconds);
|
||||
|
||||
// set time series compaction empty rowsets threshold
|
||||
long timeSeriesCompactionEmptyRowsetsThreshold
|
||||
= PropertyAnalyzer.TIME_SERIES_COMPACTION_EMPTY_ROWSETS_THRESHOLD_DEFAULT_VALUE;
|
||||
try {
|
||||
timeSeriesCompactionEmptyRowsetsThreshold = PropertyAnalyzer
|
||||
.analyzeTimeSeriesCompactionEmptyRowsetsThreshold(properties);
|
||||
} catch (AnalysisException e) {
|
||||
throw new DdlException(e.getMessage());
|
||||
}
|
||||
olapTable.setTimeSeriesCompactionEmptyRowsetsThreshold(timeSeriesCompactionEmptyRowsetsThreshold);
|
||||
|
||||
// get storage format
|
||||
TStorageFormat storageFormat = TStorageFormat.V2; // default is segment v2
|
||||
try {
|
||||
@ -2466,6 +2486,7 @@ public class InternalCatalog implements CatalogIf<Database> {
|
||||
olapTable.getCompactionPolicy(), olapTable.getTimeSeriesCompactionGoalSizeMbytes(),
|
||||
olapTable.getTimeSeriesCompactionFileCountThreshold(),
|
||||
olapTable.getTimeSeriesCompactionTimeThresholdSeconds(),
|
||||
olapTable.getTimeSeriesCompactionEmptyRowsetsThreshold(),
|
||||
storeRowColumn, binlogConfigForTask,
|
||||
partitionInfo.getDataProperty(partitionId).isStorageMediumSpecified(),
|
||||
keysDesc.getClusterKeysColumnIds());
|
||||
@ -2542,6 +2563,7 @@ public class InternalCatalog implements CatalogIf<Database> {
|
||||
olapTable.getCompactionPolicy(), olapTable.getTimeSeriesCompactionGoalSizeMbytes(),
|
||||
olapTable.getTimeSeriesCompactionFileCountThreshold(),
|
||||
olapTable.getTimeSeriesCompactionTimeThresholdSeconds(),
|
||||
olapTable.getTimeSeriesCompactionEmptyRowsetsThreshold(),
|
||||
storeRowColumn, binlogConfigForTask,
|
||||
dataProperty.isStorageMediumSpecified(), keysDesc.getClusterKeysColumnIds());
|
||||
olapTable.addPartition(partition);
|
||||
@ -2990,6 +3012,7 @@ public class InternalCatalog implements CatalogIf<Database> {
|
||||
olapTable.getCompactionPolicy(), olapTable.getTimeSeriesCompactionGoalSizeMbytes(),
|
||||
olapTable.getTimeSeriesCompactionFileCountThreshold(),
|
||||
olapTable.getTimeSeriesCompactionTimeThresholdSeconds(),
|
||||
olapTable.getTimeSeriesCompactionEmptyRowsetsThreshold(),
|
||||
olapTable.storeRowColumn(), binlogConfig,
|
||||
copiedTbl.getPartitionInfo().getDataProperty(oldPartitionId).isStorageMediumSpecified(),
|
||||
clusterKeyIdxes);
|
||||
|
||||
@ -835,6 +835,7 @@ public class ReportHandler extends Daemon {
|
||||
olapTable.getTimeSeriesCompactionGoalSizeMbytes(),
|
||||
olapTable.getTimeSeriesCompactionFileCountThreshold(),
|
||||
olapTable.getTimeSeriesCompactionTimeThresholdSeconds(),
|
||||
olapTable.getTimeSeriesCompactionEmptyRowsetsThreshold(),
|
||||
olapTable.storeRowColumn(),
|
||||
binlogConfig);
|
||||
|
||||
|
||||
@ -111,6 +111,8 @@ public class CreateReplicaTask extends AgentTask {
|
||||
|
||||
private long timeSeriesCompactionTimeThresholdSeconds;
|
||||
|
||||
private long timeSeriesCompactionEmptyRowsetsThreshold;
|
||||
|
||||
private boolean storeRowColumn;
|
||||
|
||||
private BinlogConfig binlogConfig;
|
||||
@ -134,6 +136,7 @@ public class CreateReplicaTask extends AgentTask {
|
||||
long timeSeriesCompactionGoalSizeMbytes,
|
||||
long timeSeriesCompactionFileCountThreshold,
|
||||
long timeSeriesCompactionTimeThresholdSeconds,
|
||||
long timeSeriesCompactionEmptyRowsetsThreshold,
|
||||
boolean storeRowColumn,
|
||||
BinlogConfig binlogConfig) {
|
||||
super(null, backendId, TTaskType.CREATE, dbId, tableId, partitionId, indexId, tabletId);
|
||||
@ -175,6 +178,7 @@ public class CreateReplicaTask extends AgentTask {
|
||||
this.timeSeriesCompactionGoalSizeMbytes = timeSeriesCompactionGoalSizeMbytes;
|
||||
this.timeSeriesCompactionFileCountThreshold = timeSeriesCompactionFileCountThreshold;
|
||||
this.timeSeriesCompactionTimeThresholdSeconds = timeSeriesCompactionTimeThresholdSeconds;
|
||||
this.timeSeriesCompactionEmptyRowsetsThreshold = timeSeriesCompactionEmptyRowsetsThreshold;
|
||||
this.storeRowColumn = storeRowColumn;
|
||||
this.binlogConfig = binlogConfig;
|
||||
}
|
||||
@ -322,6 +326,7 @@ public class CreateReplicaTask extends AgentTask {
|
||||
createTabletReq.setTimeSeriesCompactionGoalSizeMbytes(timeSeriesCompactionGoalSizeMbytes);
|
||||
createTabletReq.setTimeSeriesCompactionFileCountThreshold(timeSeriesCompactionFileCountThreshold);
|
||||
createTabletReq.setTimeSeriesCompactionTimeThresholdSeconds(timeSeriesCompactionTimeThresholdSeconds);
|
||||
createTabletReq.setTimeSeriesCompactionEmptyRowsetsThreshold(timeSeriesCompactionEmptyRowsetsThreshold);
|
||||
|
||||
if (binlogConfig != null) {
|
||||
createTabletReq.setBinlogConfig(binlogConfig.toThrift());
|
||||
|
||||
@ -155,6 +155,11 @@ public class UpdateTabletMetaInfoTask extends AgentTask {
|
||||
metaInfo.setTimeSeriesCompactionTimeThresholdSeconds(timeSeriesCompactionConfig
|
||||
.get(PropertyAnalyzer.PROPERTIES_TIME_SERIES_COMPACTION_TIME_THRESHOLD_SECONDS));
|
||||
}
|
||||
if (timeSeriesCompactionConfig
|
||||
.containsKey(PropertyAnalyzer.PROPERTIES_TIME_SERIES_COMPACTION_EMPTY_ROWSETS_THRESHOLD)) {
|
||||
metaInfo.setTimeSeriesCompactionEmptyRowsetsThreshold(timeSeriesCompactionConfig
|
||||
.get(PropertyAnalyzer.PROPERTIES_TIME_SERIES_COMPACTION_EMPTY_ROWSETS_THRESHOLD));
|
||||
}
|
||||
}
|
||||
if (enableSingleReplicaCompaction >= 0) {
|
||||
metaInfo.setEnableSingleReplicaCompaction(enableSingleReplicaCompaction > 0);
|
||||
|
||||
Reference in New Issue
Block a user