This is an automated email from the ASF dual-hosted git repository.
jackietien pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/master by this push:
new 16965de83a0 Implemented the "restrict_object_limit" for object
restriction (#16933)
16965de83a0 is described below
commit 16965de83a0d3a4ddff9c1991274f2e4548d9395
Author: Caideyipi <[email protected]>
AuthorDate: Mon Dec 22 08:21:41 2025 +0800
Implemented the "restrict_object_limit" for object restriction (#16933)
---
.../org/apache/iotdb/relational/it/schema/IoTDBTableIT.java | 1 +
.../org/apache/iotdb/confignode/conf/ConfigNodeConfig.java | 10 ----------
.../apache/iotdb/confignode/conf/ConfigNodeDescriptor.java | 5 -----
.../apache/iotdb/confignode/conf/SystemPropertiesUtils.java | 11 +++++++----
.../org/apache/iotdb/confignode/manager/node/NodeManager.java | 2 +-
.../src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java | 10 ----------
.../main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java | 1 -
.../metadata/fetcher/TableDeviceSchemaValidator.java | 4 ++++
.../apache/iotdb/db/storageengine/dataregion/IObjectPath.java | 10 +++++-----
.../db/queryengine/plan/function/RecordObjectTypeTest.java | 6 +++---
.../dag/column/unary/scalar/ObjectTypeFunctionTest.java | 6 +++---
.../compaction/object/ObjectTypeCompactionTest.java | 6 +++---
.../main/java/org/apache/iotdb/commons/conf/CommonConfig.java | 9 +++++++++
.../java/org/apache/iotdb/commons/conf/CommonDescriptor.java | 6 ++++++
.../java/org/apache/iotdb/commons/schema/table/TsTable.java | 3 +++
15 files changed, 45 insertions(+), 45 deletions(-)
diff --git
a/integration-test/src/test/java/org/apache/iotdb/relational/it/schema/IoTDBTableIT.java
b/integration-test/src/test/java/org/apache/iotdb/relational/it/schema/IoTDBTableIT.java
index 5eaf230b600..cc50ac4e02c 100644
---
a/integration-test/src/test/java/org/apache/iotdb/relational/it/schema/IoTDBTableIT.java
+++
b/integration-test/src/test/java/org/apache/iotdb/relational/it/schema/IoTDBTableIT.java
@@ -73,6 +73,7 @@ public class IoTDBTableIT {
@BeforeClass
public static void setUp() throws Exception {
EnvFactory.getEnv().getConfig().getCommonConfig().setEnforceStrongPassword(false);
+
EnvFactory.getEnv().getConfig().getCommonConfig().setRestrictObjectLimit(true);
EnvFactory.getEnv().initClusterEnvironment();
}
diff --git
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeConfig.java
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeConfig.java
index 34b69382b8f..88e8d76001d 100644
---
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeConfig.java
+++
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeConfig.java
@@ -316,8 +316,6 @@ public class ConfigNodeConfig {
private long forceWalPeriodForConfigNodeSimpleInMs = 100;
- private boolean restrictObjectLimit = false;
-
public ConfigNodeConfig() {
// empty constructor
}
@@ -1277,12 +1275,4 @@ public class ConfigNodeConfig {
public void setFailureDetectorPhiAcceptablePauseInMs(long
failureDetectorPhiAcceptablePauseInMs) {
this.failureDetectorPhiAcceptablePauseInMs =
failureDetectorPhiAcceptablePauseInMs;
}
-
- public boolean getRestrictObjectLimit() {
- return restrictObjectLimit;
- }
-
- public void setRestrictObjectLimit(boolean restrictObjectLimit) {
- this.restrictObjectLimit = restrictObjectLimit;
- }
}
diff --git
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeDescriptor.java
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeDescriptor.java
index 0d3968d3f7a..0ea7a278732 100644
---
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeDescriptor.java
+++
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/conf/ConfigNodeDescriptor.java
@@ -368,11 +368,6 @@ public class ConfigNodeDescriptor {
readConsistencyLevel));
}
- conf.setRestrictObjectLimit(
- Boolean.parseBoolean(
- properties.getProperty(
- "restrict_object_limit",
String.valueOf(conf.getRestrictObjectLimit()))));
-
// commons
commonDescriptor.loadCommonProps(properties);
commonDescriptor.initCommonConfigDir(conf.getSystemDir());
diff --git
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/conf/SystemPropertiesUtils.java
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/conf/SystemPropertiesUtils.java
index 9cf6b2dac96..d4dd53ffd43 100644
---
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/conf/SystemPropertiesUtils.java
+++
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/conf/SystemPropertiesUtils.java
@@ -217,10 +217,13 @@ public class SystemPropertiesUtils {
if (systemProperties.getProperty("restrict_object_limit", null) != null) {
boolean restrictObjectLimit =
Boolean.parseBoolean(systemProperties.getProperty("restrict_object_limit"));
- if (restrictObjectLimit != conf.getRestrictObjectLimit()) {
+ if (restrictObjectLimit != COMMON_CONFIG.isRestrictObjectLimit()) {
LOGGER.warn(
- format, "restrict_object_limit", conf.getRestrictObjectLimit(),
restrictObjectLimit);
- conf.setRestrictObjectLimit(restrictObjectLimit);
+ format,
+ "restrict_object_limit",
+ COMMON_CONFIG.isRestrictObjectLimit(),
+ restrictObjectLimit);
+ COMMON_CONFIG.setRestrictObjectLimit(restrictObjectLimit);
}
}
}
@@ -297,7 +300,7 @@ public class SystemPropertiesUtils {
systemProperties.setProperty(
"enable_grant_option",
String.valueOf(COMMON_CONFIG.getEnableGrantOption()));
systemProperties.setProperty(
- "restrict_object_limit",
String.valueOf(conf.getRestrictObjectLimit()));
+ "restrict_object_limit",
String.valueOf(COMMON_CONFIG.isRestrictObjectLimit()));
systemPropertiesHandler.overwrite(systemProperties);
}
diff --git
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/node/NodeManager.java
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/node/NodeManager.java
index 234227286df..3cd68b0c5df 100644
---
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/node/NodeManager.java
+++
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/node/NodeManager.java
@@ -179,7 +179,7 @@ public class NodeManager {
globalConfig.setSchemaEngineMode(commonConfig.getSchemaEngineMode());
globalConfig.setTagAttributeTotalSize(commonConfig.getTagAttributeTotalSize());
globalConfig.setEnableGrantOption(commonConfig.getEnableGrantOption());
-
globalConfig.setRestrictObjectLimit(configNodeConfig.getRestrictObjectLimit());
+ globalConfig.setRestrictObjectLimit(commonConfig.isRestrictObjectLimit());
dataSet.setGlobalConfig(globalConfig);
}
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
index 6f861119d39..b2c80865467 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
@@ -1209,8 +1209,6 @@ public class IoTDBConfig {
private long maxObjectSizeInByte = 4 * 1024 * 1024 * 1024L;
- private boolean restrictObjectLimit = false;
-
IoTDBConfig() {}
public int getMaxLogEntriesNumPerBatch() {
@@ -4338,12 +4336,4 @@ public class IoTDBConfig {
public void setMaxObjectSizeInByte(long maxObjectSizeInByte) {
this.maxObjectSizeInByte = maxObjectSizeInByte;
}
-
- public boolean getRestrictObjectLimit() {
- return restrictObjectLimit;
- }
-
- public void setRestrictObjectLimit(boolean restrictObjectLimit) {
- this.restrictObjectLimit = restrictObjectLimit;
- }
}
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
index a039fc61774..2915365262d 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
@@ -2752,7 +2752,6 @@ public class IoTDBDescriptor {
conf.setSeriesPartitionExecutorClass(globalConfig.getSeriesPartitionExecutorClass());
conf.setSeriesPartitionSlotNum(globalConfig.getSeriesPartitionSlotNum());
conf.setReadConsistencyLevel(globalConfig.getReadConsistencyLevel());
- conf.setRestrictObjectLimit(globalConfig.isRestrictObjectLimit());
}
public void loadRatisConfig(TRatisConfig ratisConfig) {
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/fetcher/TableDeviceSchemaValidator.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/fetcher/TableDeviceSchemaValidator.java
index 3be5d931657..1c139b0f59b 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/fetcher/TableDeviceSchemaValidator.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/relational/metadata/fetcher/TableDeviceSchemaValidator.java
@@ -19,6 +19,7 @@
package org.apache.iotdb.db.queryengine.plan.relational.metadata.fetcher;
+import org.apache.iotdb.commons.conf.CommonDescriptor;
import org.apache.iotdb.commons.exception.IoTDBRuntimeException;
import org.apache.iotdb.commons.schema.table.TsTable;
import org.apache.iotdb.db.exception.sql.SemanticException;
@@ -251,6 +252,9 @@ public class TableDeviceSchemaValidator {
}
public static void checkObject4DeviceId(final Object[] deviceId) {
+ if (!CommonDescriptor.getInstance().getConfig().isRestrictObjectLimit()) {
+ return;
+ }
for (final Object part : deviceId) {
final String value = (String) part;
if (Objects.nonNull(value) && TsTable.isInvalid4ObjectType(value)) {
diff --git
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/IObjectPath.java
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/IObjectPath.java
index c340aae440c..3e860c0c3a7 100644
---
a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/IObjectPath.java
+++
b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/IObjectPath.java
@@ -19,8 +19,8 @@
package org.apache.iotdb.db.storageengine.dataregion;
-import org.apache.iotdb.db.conf.IoTDBConfig;
-import org.apache.iotdb.db.conf.IoTDBDescriptor;
+import org.apache.iotdb.commons.conf.CommonConfig;
+import org.apache.iotdb.commons.conf.CommonDescriptor;
import org.apache.tsfile.file.metadata.IDeviceID;
@@ -31,7 +31,7 @@ import java.nio.ByteBuffer;
public interface IObjectPath {
- IoTDBConfig CONFIG = IoTDBDescriptor.getInstance().getConfig();
+ CommonConfig CONFIG = CommonDescriptor.getInstance().getConfig();
int serialize(ByteBuffer byteBuffer);
@@ -48,7 +48,7 @@ public interface IObjectPath {
IObjectPath create(int regionId, long time, IDeviceID iDeviceID, String
measurement);
Factory FACTORY =
- CONFIG.getRestrictObjectLimit()
+ CONFIG.isRestrictObjectLimit()
? PlainObjectPath.getFACTORY()
: Base32ObjectPath.getFACTORY();
}
@@ -63,7 +63,7 @@ public interface IObjectPath {
}
static Deserializer getDeserializer() {
- return CONFIG.getRestrictObjectLimit()
+ return CONFIG.isRestrictObjectLimit()
? PlainObjectPath.getDESERIALIZER()
: Base32ObjectPath.getDESERIALIZER();
}
diff --git
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/function/RecordObjectTypeTest.java
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/function/RecordObjectTypeTest.java
index 98f2428e8d5..876f116a2c2 100644
---
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/function/RecordObjectTypeTest.java
+++
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/plan/function/RecordObjectTypeTest.java
@@ -19,8 +19,8 @@
package org.apache.iotdb.db.queryengine.plan.function;
-import org.apache.iotdb.db.conf.IoTDBConfig;
-import org.apache.iotdb.db.conf.IoTDBDescriptor;
+import org.apache.iotdb.commons.conf.CommonConfig;
+import org.apache.iotdb.commons.conf.CommonDescriptor;
import org.apache.iotdb.db.exception.DiskSpaceInsufficientException;
import
org.apache.iotdb.db.queryengine.execution.operator.process.function.partition.Slice;
import
org.apache.iotdb.db.queryengine.execution.operator.source.relational.aggregation.RecordIterator;
@@ -56,7 +56,7 @@ import static org.junit.Assert.fail;
public class RecordObjectTypeTest {
- private final IoTDBConfig config = IoTDBDescriptor.getInstance().getConfig();
+ private final CommonConfig config =
CommonDescriptor.getInstance().getConfig();
private File objectDir;
diff --git
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/ObjectTypeFunctionTest.java
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/ObjectTypeFunctionTest.java
index 022257d1ee6..ed933d31ec0 100644
---
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/ObjectTypeFunctionTest.java
+++
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/queryengine/transformation/dag/column/unary/scalar/ObjectTypeFunctionTest.java
@@ -19,8 +19,8 @@
package org.apache.iotdb.db.queryengine.transformation.dag.column.unary.scalar;
-import org.apache.iotdb.db.conf.IoTDBConfig;
-import org.apache.iotdb.db.conf.IoTDBDescriptor;
+import org.apache.iotdb.commons.conf.CommonConfig;
+import org.apache.iotdb.commons.conf.CommonDescriptor;
import org.apache.iotdb.db.exception.DiskSpaceInsufficientException;
import
org.apache.iotdb.db.queryengine.transformation.dag.column.ColumnTransformer;
import org.apache.iotdb.db.storageengine.rescon.disk.TierManager;
@@ -50,7 +50,7 @@ import java.util.Optional;
public class ObjectTypeFunctionTest {
- private final IoTDBConfig config = IoTDBDescriptor.getInstance().getConfig();
+ private final CommonConfig config =
CommonDescriptor.getInstance().getConfig();
private File objectDir;
diff --git
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/object/ObjectTypeCompactionTest.java
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/object/ObjectTypeCompactionTest.java
index 4fd7e8c432d..723a052cff1 100644
---
a/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/object/ObjectTypeCompactionTest.java
+++
b/iotdb-core/datanode/src/test/java/org/apache/iotdb/db/storageengine/dataregion/compaction/object/ObjectTypeCompactionTest.java
@@ -19,13 +19,13 @@
package org.apache.iotdb.db.storageengine.dataregion.compaction.object;
+import org.apache.iotdb.commons.conf.CommonConfig;
+import org.apache.iotdb.commons.conf.CommonDescriptor;
import org.apache.iotdb.commons.exception.MetadataException;
import org.apache.iotdb.commons.schema.table.TsTable;
import org.apache.iotdb.commons.schema.table.column.FieldColumnSchema;
import org.apache.iotdb.commons.schema.table.column.TagColumnSchema;
import org.apache.iotdb.commons.utils.FileUtils;
-import org.apache.iotdb.db.conf.IoTDBConfig;
-import org.apache.iotdb.db.conf.IoTDBDescriptor;
import org.apache.iotdb.db.exception.DiskSpaceInsufficientException;
import org.apache.iotdb.db.exception.StorageEngineException;
import org.apache.iotdb.db.schemaengine.table.DataNodeTableCache;
@@ -85,7 +85,7 @@ public class ObjectTypeCompactionTest extends
AbstractCompactionTest {
private File objectDir;
private File regionDir;
- private final IoTDBConfig config = IoTDBDescriptor.getInstance().getConfig();
+ private final CommonConfig config =
CommonDescriptor.getInstance().getConfig();
@Before
@Override
diff --git
a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/conf/CommonConfig.java
b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/conf/CommonConfig.java
index 62bc89ec5ae..8c821f5766f 100644
---
a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/conf/CommonConfig.java
+++
b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/conf/CommonConfig.java
@@ -473,6 +473,7 @@ public class CommonConfig {
private String auditableOperationResult = "SUCCESS, FAIL";
private int pathLogMaxSize = 100;
+ private boolean restrictObjectLimit = false;
CommonConfig() {
// Empty constructor
@@ -2728,4 +2729,12 @@ public class CommonConfig {
public void setAuditableOperationResult(String auditableOperationResult) {
this.auditableOperationResult = auditableOperationResult;
}
+
+ public boolean isRestrictObjectLimit() {
+ return restrictObjectLimit;
+ }
+
+ public void setRestrictObjectLimit(boolean restrictObjectLimit) {
+ this.restrictObjectLimit = restrictObjectLimit;
+ }
}
diff --git
a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/conf/CommonDescriptor.java
b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/conf/CommonDescriptor.java
index 0ed6848b97d..2eaf05f3b84 100644
---
a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/conf/CommonDescriptor.java
+++
b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/conf/CommonDescriptor.java
@@ -281,6 +281,11 @@ public class CommonDescriptor {
properties.getProperty(
"path_log_max_size",
String.valueOf(config.getPathLogMaxSize()))));
+ config.setRestrictObjectLimit(
+ Boolean.parseBoolean(
+ properties.getProperty(
+ "restrict_object_limit",
String.valueOf(config.isRestrictObjectLimit()))));
+
loadRetryProperties(properties);
loadBinaryAllocatorProps(properties);
}
@@ -479,6 +484,7 @@ public class CommonDescriptor {
config.setTagAttributeTotalSize(globalConfig.tagAttributeTotalSize);
config.setDiskSpaceWarningThreshold(globalConfig.getDiskSpaceWarningThreshold());
config.setEnableGrantOption(globalConfig.isEnableGrantOption());
+ config.setRestrictObjectLimit(globalConfig.isRestrictObjectLimit());
}
public void loadAuditConfig(TAuditConfig auditConfig) {
diff --git
a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/schema/table/TsTable.java
b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/schema/table/TsTable.java
index 8336f0f4aa0..ae7fb8e38c9 100644
---
a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/schema/table/TsTable.java
+++
b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/schema/table/TsTable.java
@@ -415,6 +415,9 @@ public class TsTable {
}
public void checkTableNameAndObjectNames4Object() throws MetadataException {
+ if (!CommonDescriptor.getInstance().getConfig().isRestrictObjectLimit()) {
+ return;
+ }
if (isInvalid4ObjectType(tableName)) {
throw new MetadataException(
getObjectStringError("tableName", tableName),