This is an automated email from the ASF dual-hosted git repository.
dataroaring pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new 1ea51e9f20d [Feature](group commit) Support table property "group
commit data bytes" (#29484)
1ea51e9f20d is described below
commit 1ea51e9f20d977bfb11f0813e07fe8a2a6d660b6
Author: abmdocrt <[email protected]>
AuthorDate: Sun Jan 7 19:46:42 2024 +0800
[Feature](group commit) Support table property "group commit data bytes"
(#29484)
---
.../main/java/org/apache/doris/common/Config.java | 4 +
.../main/java/org/apache/doris/alter/Alter.java | 2 +
.../apache/doris/alter/SchemaChangeHandler.java | 1 +
.../analysis/ModifyTablePropertiesClause.java | 15 ++++
.../main/java/org/apache/doris/catalog/Env.java | 4 +
.../java/org/apache/doris/catalog/OlapTable.java | 8 ++
.../org/apache/doris/catalog/TableProperty.java | 10 +++
.../apache/doris/common/util/PropertyAnalyzer.java | 20 +++++
.../apache/doris/datasource/InternalCatalog.java | 10 ++-
.../apache/doris/service/FrontendServiceImpl.java | 3 +-
.../analysis/CreateTableAsSelectStmtTest.java | 63 ++++++++-----
.../show_p0/test_show_create_table_and_views.out | 8 +-
.../test_group_commit_data_bytes_property.groovy | 100 +++++++++++++++++++++
13 files changed, 220 insertions(+), 28 deletions(-)
diff --git a/fe/fe-common/src/main/java/org/apache/doris/common/Config.java
b/fe/fe-common/src/main/java/org/apache/doris/common/Config.java
index 3a25811eead..72c436f5492 100644
--- a/fe/fe-common/src/main/java/org/apache/doris/common/Config.java
+++ b/fe/fe-common/src/main/java/org/apache/doris/common/Config.java
@@ -515,6 +515,10 @@ public class Config extends ConfigBase {
"Default commit interval in ms for group commit"})
public static int group_commit_interval_ms_default_value = 10000;
+ @ConfField(mutable = false, masterOnly = true, description =
{"攒批的默认提交数据量,单位是字节,默认128M",
+ "Default commit data bytes for group commit"})
+ public static int group_commit_data_bytes_default_value = 134217728;
+
@ConfField(mutable = true, masterOnly = true, description = {"Stream load
的默认超时时间,单位是秒。",
"Default timeout for stream load job, in seconds."})
public static int stream_load_default_timeout_second = 86400 * 3; // 3days
diff --git a/fe/fe-core/src/main/java/org/apache/doris/alter/Alter.java
b/fe/fe-core/src/main/java/org/apache/doris/alter/Alter.java
index c49a3254875..11ef9d90156 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/alter/Alter.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/alter/Alter.java
@@ -500,6 +500,8 @@ public class Alter {
.containsKey(PropertyAnalyzer.PROPERTIES_TIME_SERIES_COMPACTION_TIME_THRESHOLD_SECONDS)
|| properties
.containsKey(PropertyAnalyzer.PROPERTIES_GROUP_COMMIT_INTERVAL_MS)
+ || properties
+
.containsKey(PropertyAnalyzer.PROPERTIES_GROUP_COMMIT_DATA_BYTES)
|| properties
.containsKey(PropertyAnalyzer.PROPERTIES_ENABLE_SINGLE_REPLICA_COMPACTION)
|| properties
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/alter/SchemaChangeHandler.java
b/fe/fe-core/src/main/java/org/apache/doris/alter/SchemaChangeHandler.java
index b1d08ae0c0e..206f028b023 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/alter/SchemaChangeHandler.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/alter/SchemaChangeHandler.java
@@ -2213,6 +2213,7 @@ public class SchemaChangeHandler extends AlterHandler {
&&
!properties.containsKey(PropertyAnalyzer.PROPERTIES_ENABLE_SINGLE_REPLICA_COMPACTION)
&&
!properties.containsKey(PropertyAnalyzer.PROPERTIES_DISABLE_AUTO_COMPACTION)
&&
!properties.containsKey(PropertyAnalyzer.PROPERTIES_GROUP_COMMIT_INTERVAL_MS)
+ &&
!properties.containsKey(PropertyAnalyzer.PROPERTIES_GROUP_COMMIT_DATA_BYTES)
&&
!properties.containsKey(PropertyAnalyzer.PROPERTIES_SKIP_WRITE_INDEX_ON_LOAD)) {
LOG.info("Properties already up-to-date");
return;
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/analysis/ModifyTablePropertiesClause.java
b/fe/fe-core/src/main/java/org/apache/doris/analysis/ModifyTablePropertiesClause.java
index 07529535e6d..cc4dede8f12 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/analysis/ModifyTablePropertiesClause.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/analysis/ModifyTablePropertiesClause.java
@@ -267,6 +267,21 @@ public class ModifyTablePropertiesClause extends
AlterTableClause {
}
this.needTableStable = false;
this.opType = AlterOpType.MODIFY_TABLE_PROPERTY_SYNC;
+ } else if
(properties.containsKey(PropertyAnalyzer.PROPERTIES_GROUP_COMMIT_DATA_BYTES)) {
+ long groupCommitDataBytes;
+ String groupCommitDataBytesStr =
properties.get(PropertyAnalyzer.PROPERTIES_GROUP_COMMIT_DATA_BYTES);
+ try {
+ groupCommitDataBytes = Long.parseLong(groupCommitDataBytesStr);
+ if (groupCommitDataBytes < 0) {
+ throw new AnalysisException("group_commit_data_bytes can
not be less than 0:"
+ + groupCommitDataBytesStr);
+ }
+ } catch (NumberFormatException e) {
+ throw new AnalysisException("Invalid group_commit_data_bytes
format: "
+ + groupCommitDataBytesStr);
+ }
+ this.needTableStable = false;
+ this.opType = AlterOpType.MODIFY_TABLE_PROPERTY_SYNC;
} else {
throw new AnalysisException("Unknown table property: " +
properties.keySet());
}
diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java
b/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java
index 197f5218a1b..900c25fb7a0 100755
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/Env.java
@@ -3411,6 +3411,10 @@ public class Env {
sb.append(",\n\"").append(PropertyAnalyzer.PROPERTIES_GROUP_COMMIT_INTERVAL_MS).append("\"
= \"");
sb.append(olapTable.getGroupCommitIntervalMs()).append("\"");
+ // group commit data bytes
+
sb.append(",\n\"").append(PropertyAnalyzer.PROPERTIES_GROUP_COMMIT_DATA_BYTES).append("\"
= \"");
+ sb.append(olapTable.getGroupCommitDataBytes()).append("\"");
+
// enable duplicate without keys by default
if (olapTable.isDuplicateWithoutKey()) {
sb.append(",\n\"")
diff --git a/fe/fe-core/src/main/java/org/apache/doris/catalog/OlapTable.java
b/fe/fe-core/src/main/java/org/apache/doris/catalog/OlapTable.java
index e70b08e6c8d..a8d7fc085bd 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/OlapTable.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/OlapTable.java
@@ -1114,6 +1114,14 @@ public class OlapTable extends Table {
return getOrCreatTableProperty().getGroupCommitIntervalMs();
}
+ public void setGroupCommitDataBytes(int groupCommitInterValMs) {
+
getOrCreatTableProperty().setGroupCommitDataBytes(groupCommitInterValMs);
+ }
+
+ public int getGroupCommitDataBytes() {
+ return getOrCreatTableProperty().getGroupCommitDataBytes();
+ }
+
public Boolean hasSequenceCol() {
return getSequenceCol() != null;
}
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/catalog/TableProperty.java
b/fe/fe-core/src/main/java/org/apache/doris/catalog/TableProperty.java
index 3cbd8a6381f..3d5215bc483 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/catalog/TableProperty.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/catalog/TableProperty.java
@@ -523,6 +523,16 @@ public class TableProperty implements Writable {
Integer.toString(PropertyAnalyzer.PROPERTIES_GROUP_COMMIT_INTERVAL_MS_DEFAULT_VALUE)));
}
+ public void setGroupCommitDataBytes(int groupCommitDataBytes) {
+ properties.put(PropertyAnalyzer.PROPERTIES_GROUP_COMMIT_DATA_BYTES,
Integer.toString(groupCommitDataBytes));
+ }
+
+ public int getGroupCommitDataBytes() {
+ return Integer.parseInt(properties.getOrDefault(
+ PropertyAnalyzer.PROPERTIES_GROUP_COMMIT_DATA_BYTES,
+
Integer.toString(PropertyAnalyzer.PROPERTIES_GROUP_COMMIT_DATA_BYTES_DEFAULT_VALUE)));
+ }
+
public void buildReplicaAllocation() {
try {
// Must copy the properties because "analyzeReplicaAllocation"
will remove the property
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/common/util/PropertyAnalyzer.java
b/fe/fe-core/src/main/java/org/apache/doris/common/util/PropertyAnalyzer.java
index 9c0cfe722f7..8699c9db43d 100644
---
a/fe/fe-core/src/main/java/org/apache/doris/common/util/PropertyAnalyzer.java
+++
b/fe/fe-core/src/main/java/org/apache/doris/common/util/PropertyAnalyzer.java
@@ -180,6 +180,10 @@ public class PropertyAnalyzer {
public static final int PROPERTIES_GROUP_COMMIT_INTERVAL_MS_DEFAULT_VALUE
= Config.group_commit_interval_ms_default_value;
+ public static final String PROPERTIES_GROUP_COMMIT_DATA_BYTES =
"group_commit_data_bytes";
+ public static final int PROPERTIES_GROUP_COMMIT_DATA_BYTES_DEFAULT_VALUE
+ = Config.group_commit_data_bytes_default_value;
+
// compaction policy
public static final String SIZE_BASED_COMPACTION_POLICY = "size_based";
public static final String TIME_SERIES_COMPACTION_POLICY = "time_series";
@@ -1213,6 +1217,22 @@ public class PropertyAnalyzer {
return groupCommitIntervalMs;
}
+ public static int analyzeGroupCommitDateBytes(Map<String, String>
properties) throws AnalysisException {
+ int groupCommitDataBytes =
PROPERTIES_GROUP_COMMIT_DATA_BYTES_DEFAULT_VALUE;
+ if (properties != null &&
properties.containsKey(PROPERTIES_GROUP_COMMIT_DATA_BYTES)) {
+ String groupIntervalCommitDataBytesStr =
properties.get(PROPERTIES_GROUP_COMMIT_DATA_BYTES);
+ try {
+ groupCommitDataBytes =
Integer.parseInt(groupIntervalCommitDataBytesStr);
+ } catch (Exception e) {
+ throw new AnalysisException("parse group_commit_interval_ms
format error");
+ }
+
+ properties.remove(PROPERTIES_GROUP_COMMIT_DATA_BYTES);
+ }
+
+ return groupCommitDataBytes;
+ }
+
/**
* Check the type property of the catalog props.
*/
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/datasource/InternalCatalog.java
b/fe/fe-core/src/main/java/org/apache/doris/datasource/InternalCatalog.java
index cc04dd195f4..da8afec2634 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/datasource/InternalCatalog.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/datasource/InternalCatalog.java
@@ -2428,7 +2428,7 @@ public class InternalCatalog implements
CatalogIf<Database> {
}
// analyse group commit interval ms
- int groupCommitIntervalMs = 0;
+ int groupCommitIntervalMs;
try {
groupCommitIntervalMs =
PropertyAnalyzer.analyzeGroupCommitIntervalMs(properties);
olapTable.setGroupCommitIntervalMs(groupCommitIntervalMs);
@@ -2436,6 +2436,14 @@ public class InternalCatalog implements
CatalogIf<Database> {
throw new DdlException(e.getMessage());
}
+ int groupCommitDataBytes;
+ try {
+ groupCommitDataBytes =
PropertyAnalyzer.analyzeGroupCommitDateBytes(properties);
+ olapTable.setGroupCommitDataBytes(groupCommitDataBytes);
+ } catch (Exception e) {
+ throw new DdlException(e.getMessage());
+ }
+
olapTable.initSchemaColumnUniqueId();
olapTable.initAutoIncrentGenerator(db.getId());
olapTable.rebuildFullSchema();
diff --git
a/fe/fe-core/src/main/java/org/apache/doris/service/FrontendServiceImpl.java
b/fe/fe-core/src/main/java/org/apache/doris/service/FrontendServiceImpl.java
index cf42cb921f6..c69862d9984 100644
--- a/fe/fe-core/src/main/java/org/apache/doris/service/FrontendServiceImpl.java
+++ b/fe/fe-core/src/main/java/org/apache/doris/service/FrontendServiceImpl.java
@@ -1983,8 +1983,7 @@ public class FrontendServiceImpl implements
FrontendService.Iface {
result.setTableId(parsedStmt.getTargetTable().getId());
result.setBaseSchemaVersion(((OlapTable)
parsedStmt.getTargetTable()).getBaseSchemaVersion());
result.setGroupCommitIntervalMs(((OlapTable)
parsedStmt.getTargetTable()).getGroupCommitIntervalMs());
- // TODO get from table property
- result.setGroupCommitDataBytes(134217728L);
+ result.setGroupCommitDataBytes(((OlapTable)
parsedStmt.getTargetTable()).getGroupCommitDataBytes());
result.setWaitInternalGroupCommitFinish(Config.wait_internal_group_commit_finish);
} catch (UserException e) {
LOG.warn("exec sql error", e);
diff --git
a/fe/fe-core/src/test/java/org/apache/doris/analysis/CreateTableAsSelectStmtTest.java
b/fe/fe-core/src/test/java/org/apache/doris/analysis/CreateTableAsSelectStmtTest.java
index 96df0d9c74d..13811d3af47 100644
---
a/fe/fe-core/src/test/java/org/apache/doris/analysis/CreateTableAsSelectStmtTest.java
+++
b/fe/fe-core/src/test/java/org/apache/doris/analysis/CreateTableAsSelectStmtTest.java
@@ -99,7 +99,8 @@ public class CreateTableAsSelectStmtTest extends
TestWithFeService {
+ "\"light_schema_change\" = \"true\",\n"
+ "\"disable_auto_compaction\" = \"false\",\n"
+ "\"enable_single_replica_compaction\" = \"false\",\n"
- + "\"group_commit_interval_ms\" = \"10000\"\n"
+ + "\"group_commit_interval_ms\" = \"10000\",\n"
+ + "\"group_commit_data_bytes\" = \"134217728\"\n"
+ ");",
showCreateTableByName("select_decimal_table").getResultRows().get(0).get(1));
String selectFromDecimal1 =
@@ -123,7 +124,8 @@ public class CreateTableAsSelectStmtTest extends
TestWithFeService {
+ "\"light_schema_change\" = \"true\",\n"
+ "\"disable_auto_compaction\" = \"false\",\n"
+ "\"enable_single_replica_compaction\" =
\"false\",\n"
- + "\"group_commit_interval_ms\" = \"10000\"\n"
+ + "\"group_commit_interval_ms\" = \"10000\",\n"
+ + "\"group_commit_data_bytes\" = \"134217728\"\n"
+ ");",
showCreateTableByName("select_decimal_table_1").getResultRows().get(0).get(1));
} else {
@@ -143,7 +145,8 @@ public class CreateTableAsSelectStmtTest extends
TestWithFeService {
+ "\"light_schema_change\" = \"true\",\n"
+ "\"disable_auto_compaction\" = \"false\",\n"
+ "\"enable_single_replica_compaction\" =
\"false\",\n"
- + "\"group_commit_interval_ms\" = \"10000\"\n"
+ + "\"group_commit_interval_ms\" = \"10000\",\n"
+ + "\"group_commit_data_bytes\" = \"134217728\"\n"
+ ");",
showCreateTableByName("select_decimal_table_1").getResultRows().get(0).get(1));
}
@@ -181,7 +184,8 @@ public class CreateTableAsSelectStmtTest extends
TestWithFeService {
+ "\"light_schema_change\" = \"true\",\n"
+ "\"disable_auto_compaction\" = \"false\",\n"
+ "\"enable_single_replica_compaction\" = \"false\",\n"
- + "\"group_commit_interval_ms\" = \"10000\"\n"
+ + "\"group_commit_interval_ms\" = \"10000\",\n"
+ + "\"group_commit_data_bytes\" = \"134217728\"\n"
+ ");",
showResultSet.getResultRows().get(0).get(1));
}
@@ -208,7 +212,8 @@ public class CreateTableAsSelectStmtTest extends
TestWithFeService {
+ "\"light_schema_change\" = \"true\",\n"
+ "\"disable_auto_compaction\" = \"false\",\n"
+ "\"enable_single_replica_compaction\" = \"false\",\n"
- + "\"group_commit_interval_ms\" = \"10000\"\n"
+ + "\"group_commit_interval_ms\" = \"10000\",\n"
+ + "\"group_commit_data_bytes\" = \"134217728\"\n"
+ ");",
showResultSet1.getResultRows().get(0).get(1));
@@ -237,7 +242,8 @@ public class CreateTableAsSelectStmtTest extends
TestWithFeService {
+ "\"light_schema_change\" = \"true\",\n"
+ "\"disable_auto_compaction\" = \"false\",\n"
+ "\"enable_single_replica_compaction\" = \"false\",\n"
- + "\"group_commit_interval_ms\" = \"10000\"\n"
+ + "\"group_commit_interval_ms\" = \"10000\",\n"
+ + "\"group_commit_data_bytes\" = \"134217728\"\n"
+ ");",
showResultSet2.getResultRows().get(0).get(1));
}
@@ -263,7 +269,8 @@ public class CreateTableAsSelectStmtTest extends
TestWithFeService {
+ "\"light_schema_change\" = \"true\",\n"
+ "\"disable_auto_compaction\" = \"false\",\n"
+ "\"enable_single_replica_compaction\" = \"false\",\n"
- + "\"group_commit_interval_ms\" = \"10000\"\n"
+ + "\"group_commit_interval_ms\" = \"10000\",\n"
+ + "\"group_commit_data_bytes\" = \"134217728\"\n"
+ ");", showResultSet1.getResultRows().get(0).get(1));
String selectAlias2 = "create table `test`.`select_alias_2`
PROPERTIES(\"replication_num\" = \"1\") "
+ "as select userId as alias_name, username from
`test`.`varchar_table`";
@@ -285,7 +292,8 @@ public class CreateTableAsSelectStmtTest extends
TestWithFeService {
+ "\"light_schema_change\" = \"true\",\n"
+ "\"disable_auto_compaction\" = \"false\",\n"
+ "\"enable_single_replica_compaction\" = \"false\",\n"
- + "\"group_commit_interval_ms\" = \"10000\"\n"
+ + "\"group_commit_interval_ms\" = \"10000\",\n"
+ + "\"group_commit_data_bytes\" = \"134217728\"\n"
+ ");",
showResultSet2.getResultRows().get(0).get(1));
}
@@ -314,7 +322,8 @@ public class CreateTableAsSelectStmtTest extends
TestWithFeService {
+ "\"light_schema_change\" = \"true\",\n"
+ "\"disable_auto_compaction\" = \"false\",\n"
+ "\"enable_single_replica_compaction\" = \"false\",\n"
- + "\"group_commit_interval_ms\" = \"10000\"\n"
+ + "\"group_commit_interval_ms\" = \"10000\",\n"
+ + "\"group_commit_data_bytes\" = \"134217728\"\n"
+ ");",
showResultSet.getResultRows().get(0).get(1));
String selectFromJoin1 = "create table `test`.`select_join1`
PROPERTIES(\"replication_num\" = \"1\") "
@@ -340,7 +349,8 @@ public class CreateTableAsSelectStmtTest extends
TestWithFeService {
+ "\"light_schema_change\" = \"true\",\n"
+ "\"disable_auto_compaction\" = \"false\",\n"
+ "\"enable_single_replica_compaction\" = \"false\",\n"
- + "\"group_commit_interval_ms\" = \"10000\"\n"
+ + "\"group_commit_interval_ms\" = \"10000\",\n"
+ + "\"group_commit_data_bytes\" = \"134217728\"\n"
+ ");",
showResultSet1.getResultRows().get(0).get(1));
}
@@ -370,7 +380,8 @@ public class CreateTableAsSelectStmtTest extends
TestWithFeService {
+ "\"light_schema_change\" = \"true\",\n"
+ "\"disable_auto_compaction\" = \"false\",\n"
+ "\"enable_single_replica_compaction\" = \"false\",\n"
- + "\"group_commit_interval_ms\" = \"10000\"\n"
+ + "\"group_commit_interval_ms\" = \"10000\",\n"
+ + "\"group_commit_data_bytes\" = \"134217728\"\n"
+ ");",
showResultSet.getResultRows().get(0).get(1));
}
@@ -397,7 +408,8 @@ public class CreateTableAsSelectStmtTest extends
TestWithFeService {
+ "\"light_schema_change\" = \"true\",\n"
+ "\"disable_auto_compaction\" = \"false\",\n"
+ "\"enable_single_replica_compaction\" = \"false\",\n"
- + "\"group_commit_interval_ms\" = \"10000\"\n"
+ + "\"group_commit_interval_ms\" = \"10000\",\n"
+ + "\"group_commit_data_bytes\" = \"134217728\"\n"
+ ");", showResultSet.getResultRows().get(0).get(1));
}
@@ -423,7 +435,8 @@ public class CreateTableAsSelectStmtTest extends
TestWithFeService {
+ "\"light_schema_change\" = \"true\",\n"
+ "\"disable_auto_compaction\" = \"false\",\n"
+ "\"enable_single_replica_compaction\" = \"false\",\n"
- + "\"group_commit_interval_ms\" = \"10000\"\n"
+ + "\"group_commit_interval_ms\" = \"10000\",\n"
+ + "\"group_commit_data_bytes\" = \"134217728\"\n"
+ ");",
showResultSet.getResultRows().get(0).get(1));
String selectFromCteAndUnion = "create table `test`.`select_cte_union`
PROPERTIES(\"replication_num\" = \"1\")"
@@ -445,7 +458,8 @@ public class CreateTableAsSelectStmtTest extends
TestWithFeService {
+ "\"light_schema_change\" = \"true\",\n"
+ "\"disable_auto_compaction\" = \"false\",\n"
+ "\"enable_single_replica_compaction\" = \"false\",\n"
- + "\"group_commit_interval_ms\" = \"10000\"\n"
+ + "\"group_commit_interval_ms\" = \"10000\",\n"
+ + "\"group_commit_data_bytes\" = \"134217728\"\n"
+ ");", showResultSet1.getResultRows().get(0).get(1));
}
@@ -474,7 +488,8 @@ public class CreateTableAsSelectStmtTest extends
TestWithFeService {
+ "\"light_schema_change\" = \"true\",\n"
+ "\"disable_auto_compaction\" = \"false\",\n"
+ "\"enable_single_replica_compaction\" = \"false\",\n"
- + "\"group_commit_interval_ms\" = \"10000\"\n"
+ + "\"group_commit_interval_ms\" = \"10000\",\n"
+ + "\"group_commit_data_bytes\" = \"134217728\"\n"
+ ");",
showResultSet.getResultRows().get(0).get(1));
}
@@ -502,7 +517,8 @@ public class CreateTableAsSelectStmtTest extends
TestWithFeService {
+ "\"light_schema_change\" = \"true\",\n"
+ "\"disable_auto_compaction\" = \"false\",\n"
+ "\"enable_single_replica_compaction\" = \"false\",\n"
- + "\"group_commit_interval_ms\" = \"10000\"\n"
+ + "\"group_commit_interval_ms\" = \"10000\",\n"
+ + "\"group_commit_data_bytes\" = \"134217728\"\n"
+ ");",
showResultSet.getResultRows().get(0).get(1));
}
@@ -529,7 +545,8 @@ public class CreateTableAsSelectStmtTest extends
TestWithFeService {
+ "\"light_schema_change\" = \"true\",\n"
+ "\"disable_auto_compaction\" = \"false\",\n"
+ "\"enable_single_replica_compaction\" = \"false\",\n"
- + "\"group_commit_interval_ms\" = \"10000\"\n"
+ + "\"group_commit_interval_ms\" = \"10000\",\n"
+ + "\"group_commit_data_bytes\" = \"134217728\"\n"
+ ");",
showResultSet.getResultRows().get(0).get(1));
}
@@ -558,7 +575,8 @@ public class CreateTableAsSelectStmtTest extends
TestWithFeService {
+ "\"light_schema_change\" = \"true\",\n"
+ "\"disable_auto_compaction\" = \"false\",\n"
+ "\"enable_single_replica_compaction\" = \"false\",\n"
- + "\"group_commit_interval_ms\" = \"10000\"\n"
+ + "\"group_commit_interval_ms\" = \"10000\",\n"
+ + "\"group_commit_data_bytes\" = \"134217728\"\n"
+ ");",
showResultSet.getResultRows().get(0).get(1));
}
@@ -610,7 +628,8 @@ public class CreateTableAsSelectStmtTest extends
TestWithFeService {
+ "\"light_schema_change\" = \"true\",\n"
+ "\"disable_auto_compaction\" = \"false\",\n"
+ "\"enable_single_replica_compaction\" =
\"false\",\n"
- + "\"group_commit_interval_ms\" = \"10000\"\n"
+ + "\"group_commit_interval_ms\" = \"10000\",\n"
+ + "\"group_commit_data_bytes\" =
\"134217728\"\n"
+ ");",
createTableStmts.get(0));
} else {
@@ -630,7 +649,8 @@ public class CreateTableAsSelectStmtTest extends
TestWithFeService {
+ "\"light_schema_change\" = \"true\",\n"
+ "\"disable_auto_compaction\" = \"false\",\n"
+ "\"enable_single_replica_compaction\" =
\"false\",\n"
- + "\"group_commit_interval_ms\" = \"10000\"\n"
+ + "\"group_commit_interval_ms\" = \"10000\",\n"
+ + "\"group_commit_data_bytes\" =
\"134217728\"\n"
+ ");",
createTableStmts.get(0));
}
@@ -664,7 +684,8 @@ public class CreateTableAsSelectStmtTest extends
TestWithFeService {
+ "\"light_schema_change\" = \"true\",\n"
+ "\"disable_auto_compaction\" = \"false\",\n"
+ "\"enable_single_replica_compaction\" = \"false\",\n"
- + "\"group_commit_interval_ms\" = \"10000\"\n"
+ + "\"group_commit_interval_ms\" = \"10000\",\n"
+ + "\"group_commit_data_bytes\" = \"134217728\"\n"
+ ");",
showStr);
}
diff --git a/regression-test/data/show_p0/test_show_create_table_and_views.out
b/regression-test/data/show_p0/test_show_create_table_and_views.out
index 53c1da08b9a..95af034fcc4 100644
--- a/regression-test/data/show_p0/test_show_create_table_and_views.out
+++ b/regression-test/data/show_p0/test_show_create_table_and_views.out
@@ -1,6 +1,6 @@
-- This file is automatically generated. You should know what you did if you
want to edit this
-- !show --
-show_create_table_and_views_table CREATE TABLE
`show_create_table_and_views_table` (\n `user_id` LARGEINT NOT NULL,\n
`good_id` LARGEINT NOT NULL,\n `cost` BIGINT SUM NULL DEFAULT "0"\n)
ENGINE=OLAP\nAGGREGATE KEY(`user_id`, `good_id`)\nCOMMENT 'OLAP'\nPARTITION BY
RANGE(`good_id`)\n(PARTITION p1 VALUES
[("-170141183460469231731687303715884105728"), ("100")),\nPARTITION p2 VALUES
[("100"), ("200")),\nPARTITION p3 VALUES [("200"), ("300")),\nPARTITION p4
VALUES [("300"), ("400")),\nPAR [...]
+show_create_table_and_views_table CREATE TABLE
`show_create_table_and_views_table` (\n `user_id` LARGEINT NOT NULL,\n
`good_id` LARGEINT NOT NULL,\n `cost` BIGINT SUM NULL DEFAULT "0"\n)
ENGINE=OLAP\nAGGREGATE KEY(`user_id`, `good_id`)\nCOMMENT 'OLAP'\nPARTITION BY
RANGE(`good_id`)\n(PARTITION p1 VALUES
[("-170141183460469231731687303715884105728"), ("100")),\nPARTITION p2 VALUES
[("100"), ("200")),\nPARTITION p3 VALUES [("200"), ("300")),\nPARTITION p4
VALUES [("300"), ("400")),\nPAR [...]
-- !select --
1 1 30
@@ -36,11 +36,11 @@ show_create_table_and_views_view CREATE VIEW
`show_create_table_and_views_view`
300 1
-- !show --
-show_create_table_and_views_table CREATE TABLE
`show_create_table_and_views_table` (\n `user_id` LARGEINT NOT NULL,\n
`good_id` LARGEINT NOT NULL,\n `cost` BIGINT SUM NULL DEFAULT "0"\n)
ENGINE=OLAP\nAGGREGATE KEY(`user_id`, `good_id`)\nCOMMENT 'OLAP'\nPARTITION BY
RANGE(`good_id`)\n(PARTITION p1 VALUES
[("-170141183460469231731687303715884105728"), ("100")),\nPARTITION p2 VALUES
[("100"), ("200")),\nPARTITION p3 VALUES [("200"), ("300")),\nPARTITION p4
VALUES [("300"), ("400")),\nPAR [...]
+show_create_table_and_views_table CREATE TABLE
`show_create_table_and_views_table` (\n `user_id` LARGEINT NOT NULL,\n
`good_id` LARGEINT NOT NULL,\n `cost` BIGINT SUM NULL DEFAULT "0"\n)
ENGINE=OLAP\nAGGREGATE KEY(`user_id`, `good_id`)\nCOMMENT 'OLAP'\nPARTITION BY
RANGE(`good_id`)\n(PARTITION p1 VALUES
[("-170141183460469231731687303715884105728"), ("100")),\nPARTITION p2 VALUES
[("100"), ("200")),\nPARTITION p3 VALUES [("200"), ("300")),\nPARTITION p4
VALUES [("300"), ("400")),\nPAR [...]
-- !show --
-show_create_table_and_views_like CREATE TABLE
`show_create_table_and_views_like` (\n `user_id` LARGEINT NOT NULL,\n
`good_id` LARGEINT NOT NULL,\n `cost` BIGINT SUM NULL DEFAULT "0"\n)
ENGINE=OLAP\nAGGREGATE KEY(`user_id`, `good_id`)\nCOMMENT 'OLAP'\nPARTITION BY
RANGE(`good_id`)\n(PARTITION p1 VALUES
[("-170141183460469231731687303715884105728"), ("100")),\nPARTITION p2 VALUES
[("100"), ("200")),\nPARTITION p3 VALUES [("200"), ("300")),\nPARTITION p4
VALUES [("300"), ("400")),\nPARTI [...]
+show_create_table_and_views_like CREATE TABLE
`show_create_table_and_views_like` (\n `user_id` LARGEINT NOT NULL,\n
`good_id` LARGEINT NOT NULL,\n `cost` BIGINT SUM NULL DEFAULT "0"\n)
ENGINE=OLAP\nAGGREGATE KEY(`user_id`, `good_id`)\nCOMMENT 'OLAP'\nPARTITION BY
RANGE(`good_id`)\n(PARTITION p1 VALUES
[("-170141183460469231731687303715884105728"), ("100")),\nPARTITION p2 VALUES
[("100"), ("200")),\nPARTITION p3 VALUES [("200"), ("300")),\nPARTITION p4
VALUES [("300"), ("400")),\nPARTI [...]
-- !show --
-show_create_table_and_views_like_with_rollup CREATE TABLE
`show_create_table_and_views_like_with_rollup` (\n `user_id` LARGEINT NOT
NULL,\n `good_id` LARGEINT NOT NULL,\n `cost` BIGINT SUM NULL DEFAULT "0"\n)
ENGINE=OLAP\nAGGREGATE KEY(`user_id`, `good_id`)\nCOMMENT 'OLAP'\nPARTITION BY
RANGE(`good_id`)\n(PARTITION p1 VALUES
[("-170141183460469231731687303715884105728"), ("100")),\nPARTITION p2 VALUES
[("100"), ("200")),\nPARTITION p3 VALUES [("200"), ("300")),\nPARTITION p4
VALUES [( [...]
+show_create_table_and_views_like_with_rollup CREATE TABLE
`show_create_table_and_views_like_with_rollup` (\n `user_id` LARGEINT NOT
NULL,\n `good_id` LARGEINT NOT NULL,\n `cost` BIGINT SUM NULL DEFAULT "0"\n)
ENGINE=OLAP\nAGGREGATE KEY(`user_id`, `good_id`)\nCOMMENT 'OLAP'\nPARTITION BY
RANGE(`good_id`)\n(PARTITION p1 VALUES
[("-170141183460469231731687303715884105728"), ("100")),\nPARTITION p2 VALUES
[("100"), ("200")),\nPARTITION p3 VALUES [("200"), ("300")),\nPARTITION p4
VALUES [( [...]
diff --git
a/regression-test/suites/insert_p0/test_group_commit_data_bytes_property.groovy
b/regression-test/suites/insert_p0/test_group_commit_data_bytes_property.groovy
new file mode 100644
index 00000000000..b71ebe0d099
--- /dev/null
+++
b/regression-test/suites/insert_p0/test_group_commit_data_bytes_property.groovy
@@ -0,0 +1,100 @@
+// 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.
+
+import com.mysql.cj.jdbc.StatementImpl
+import org.codehaus.groovy.runtime.IOGroovyMethods
+
+suite("test_group_commit_data_bytes_property") {
+
+ def dbName = "regression_test_insert_p0"
+ def tableName = "test_group_commit_data_bytes_property_tbl"
+ def table = dbName + "." + tableName
+
+ def group_commit_insert = { sql, expected_row_count ->
+ def stmt = prepareStatement """ ${sql} """
+ def result = stmt.executeUpdate()
+ logger.info("insert result: " + result)
+ def serverInfo = (((StatementImpl) stmt).results).getServerInfo()
+ logger.info("result server info: " + serverInfo)
+ if (result != expected_row_count) {
+ logger.warn("insert result: " + result + ", expected_row_count: "
+ expected_row_count + ", sql: " + sql)
+ }
+ // assertEquals(result, expected_row_count)
+ assertTrue(serverInfo.contains("'status':'PREPARE'"))
+ assertTrue(serverInfo.contains("'label':'group_commit_"))
+ return serverInfo
+ }
+
+
+
+ for (item in ["legacy", "nereids"]) {
+ try {
+ def test_table = table + "_" + item;
+ sql """ drop table if exists ${test_table} force; """
+ sql """
+ CREATE table ${test_table} (
+ k bigint,
+ v bigint
+ )
+ UNIQUE KEY(k)
+ DISTRIBUTED BY HASH (v) BUCKETS 8
+ PROPERTIES(
+ "replication_num" = "1",
+ "group_commit_data_bytes"="1024"
+ );
+ """
+
+ connect(user = context.config.jdbcUser, password =
context.config.jdbcPassword, url = context.config.jdbcUrl) {
+
+ sql """ set group_commit = async_mode; """
+
+ if (item == "nereids") {
+ sql """ set enable_nereids_dml = true; """
+ sql """ set enable_nereids_planner=true; """
+ //sql """ set enable_fallback_to_original_planner=false; """
+ } else {
+ sql """ set enable_nereids_dml = false; """
+ }
+
+ def res1 = sql """show create table ${test_table}"""
+ assertTrue(res1.toString().contains("\"group_commit_data_bytes\" =
\"1024\""))
+
+ def msg1 = group_commit_insert """insert into ${test_table}
values(1,1); """, 1
+
+ def msg2 = group_commit_insert """insert into ${test_table}
values(2,2) """, 1
+
+ assertEquals(msg1.substring(msg1.indexOf("group_commit")+11,
msg1.indexOf("group_commit")+43),
msg2.substring(msg2.indexOf("group_commit")+11,
msg2.indexOf("group_commit")+43));
+
+ sql "ALTER table ${test_table} SET
(\"group_commit_data_bytes\"=\"1\"); "
+
+ sleep(10000)
+
+ def res2 = sql """show create table ${test_table}"""
+ assertTrue(res2.toString().contains("\"group_commit_data_bytes\" =
\"1\""))
+
+ def msg3 = group_commit_insert """insert into ${test_table}
values(3,3); """, 1
+
+ def msg4 = group_commit_insert """insert into ${test_table}
values(4,4); """, 1
+
+ assertNotEquals(msg3.substring(msg3.indexOf("group_commit")+11,
msg3.indexOf("group_commit")+43),
msg4.substring(msg4.indexOf("group_commit")+11,
msg4.indexOf("group_commit")+43));
+
+ }
+ } finally {
+ // try_sql("DROP TABLE ${table}")
+ }
+ }
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]