You are viewing a plain text version of this content. The canonical link for it is here.
Posted to reviews@iotdb.apache.org by GitBox <gi...@apache.org> on 2022/12/29 01:21:13 UTC

[GitHub] [iotdb] HTHou commented on a diff in pull request #8646: [IOTDB-5285] TimePartition may be error when restarting with different time partition configuration

HTHou commented on code in PR #8646:
URL: https://github.com/apache/iotdb/pull/8646#discussion_r1058679337


##########
server/src/main/java/org/apache/iotdb/db/conf/IoTDBStartCheck.java:
##########
@@ -57,95 +55,91 @@ public class IoTDBStartCheck {
   private static final IoTDBConfig config = IoTDBDescriptor.getInstance().getConfig();
   private static final CommonConfig commonConfig = CommonDescriptor.getInstance().getConfig();
 
-  private final FSFactory fsFactory = FSFactoryProducer.getFSFactory();
-
   // this file is located in data/system/schema/system.properties
   // If user delete folder "data", system.properties can reset.
   public static final String PROPERTIES_FILE_NAME = "system.properties";
   private static final String SCHEMA_DIR = config.getSchemaDir();
-  private static final String[] WAL_DIRS = commonConfig.getWalDirs();
 
-  private File propertiesFile;
-  private File tmpPropertiesFile;
+  private final File propertiesFile;
+  private final File tmpPropertiesFile;
 
   private final Properties properties = new Properties();
 
   private final Map<String, String> systemProperties = new HashMap<>();
 
+  // region params need checking, determined when first start
   private static final String SYSTEM_PROPERTIES_STRING = "System properties:";
-
   private static final String TIMESTAMP_PRECISION_STRING = "timestamp_precision";
-  private static final String timestampPrecision = config.getTimestampPrecision();
-
   private static final String PARTITION_INTERVAL_STRING = "time_partition_interval";
-  private static final long timePartitionInterval = config.getTimePartitionInterval();
-
   private static final String TSFILE_FILE_SYSTEM_STRING = "tsfile_storage_fs";
-  private static final String tsfileFileSystem = config.getTsFileStorageFs().toString();
-
   private static final String TAG_ATTRIBUTE_SIZE_STRING = "tag_attribute_total_size";
-  private static final String tagAttributeTotalSize =
-      String.valueOf(config.getTagAttributeTotalSize());
-
   private static final String TAG_ATTRIBUTE_FLUSH_INTERVAL = "tag_attribute_flush_interval";
-  private static final String tagAttributeFlushInterval =
-      String.valueOf(config.getTagAttributeFlushInterval());
-
   private static final String MAX_DEGREE_OF_INDEX_STRING = "max_degree_of_index_node";
-  private static final String maxDegreeOfIndexNode =
-      String.valueOf(TSFileDescriptor.getInstance().getConfig().getMaxDegreeOfIndexNode());
-
   private static final String DATA_REGION_NUM = "data_region_num";
-  // for upgrading from old file
-  private static final String VIRTUAL_STORAGE_GROUP_NUM = "virtual_storage_group_num";
-  private static final String dataRegionNum = String.valueOf(config.getDataRegionNum());
-
   private static final String ENABLE_ID_TABLE = "enable_id_table";
-  private static final String enableIDTable = String.valueOf(config.isEnableIDTable());
-
   private static final String ENABLE_ID_TABLE_LOG_FILE = "enable_id_table_log_file";
-  private static final String enableIdTableLogFile =
-      String.valueOf(config.isEnableIDTableLogFile());
-
   private static final String SCHEMA_ENGINE_MODE = "schema_engine_mode";
-  private static final String schemaEngineMode = String.valueOf(config.getSchemaEngineMode());
-
   private static final String TIME_ENCODER_KEY = "time_encoder";
-  private static final String timeEncoderValue =
-      String.valueOf(TSFileDescriptor.getInstance().getConfig().getTimeEncoder());
-
-  public static final String CLUSTER_NAME = "cluster_name";
-  public static final String DEFAULT_CLUSTER_NAME = "defaultCluster";
-  private static final String DATA_NODE_ID = "data_node_id";
-
-  private static final String SCHEMA_REGION_CONSENSUS_PROTOCOL = "schema_region_consensus_protocol";
-
-  private static final String DATA_REGION_CONSENSUS_PROTOCOL = "data_region_consensus_protocol";
-
-  private static final String IOTDB_VERSION_STRING = "iotdb_version";
 
+  private static final Map<String, Supplier<String>> constantParamValueTable = new HashMap<>();
+
+  static {
+    constantParamValueTable.put(TIMESTAMP_PRECISION_STRING, config::getTimestampPrecision);
+    constantParamValueTable.put(
+        PARTITION_INTERVAL_STRING, () -> String.valueOf(config.getTimePartitionInterval()));
+    constantParamValueTable.put(
+        TSFILE_FILE_SYSTEM_STRING, () -> config.getTsFileStorageFs().toString());
+    constantParamValueTable.put(
+        TAG_ATTRIBUTE_SIZE_STRING, () -> String.valueOf(config.getTagAttributeTotalSize()));
+    constantParamValueTable.put(
+        TAG_ATTRIBUTE_FLUSH_INTERVAL, () -> String.valueOf(config.getTagAttributeFlushInterval()));
+    constantParamValueTable.put(
+        MAX_DEGREE_OF_INDEX_STRING,
+        () -> String.valueOf(TSFileDescriptor.getInstance().getConfig().getMaxDegreeOfIndexNode()));
+    constantParamValueTable.put(DATA_REGION_NUM, () -> String.valueOf(config.getDataRegionNum()));
+    constantParamValueTable.put(ENABLE_ID_TABLE, () -> String.valueOf(config.isEnableIDTable()));
+    constantParamValueTable.put(
+        ENABLE_ID_TABLE_LOG_FILE, () -> String.valueOf(config.isEnableIDTableLogFile()));
+    constantParamValueTable.put(
+        SCHEMA_ENGINE_MODE, () -> String.valueOf(config.getSchemaEngineMode()));
+    constantParamValueTable.put(
+        TIME_ENCODER_KEY, TSFileDescriptor.getInstance().getConfig()::getTimeEncoder);
+  }
+  // endregion
+  // region params don't need checking and can be updated
   private static final String INTERNAL_ADDRESS = "dn_internal_address";
-  private static final String internalAddress = config.getInternalAddress();
-
   private static final String INTERNAL_PORT = "dn_internal_port";
-  private static final String internalPort = String.valueOf(config.getInternalPort());
-
   private static final String RPC_ADDRESS = "dn_rpc_address";
-  private static final String rpcAddress = config.getRpcAddress();
-
   private static final String RPC_PORT = "dn_rpc_port";
-  private static final String rpcPort = String.valueOf(config.getRpcPort());
-
   private static final String MPP_DATA_EXCHANGE_PORT = "dn_mpp_data_exchange_port";
-  private static final String mppDataExchangePort = String.valueOf(config.getMppDataExchangePort());
-
   private static final String SCHEMA_REGION_CONSENSUS_PORT = "dn_schema_region_consensus_port";
-  private static final String schemaRegionConsensusPort =
-      String.valueOf(config.getSchemaRegionConsensusPort());
-
   private static final String DATA_REGION_CONSENSUS_PORT = "dn_data_region_consensus_port";
-  private static final String dataRegionConsensusPort =
-      String.valueOf(config.getDataRegionConsensusPort());
+  private static final Map<String, Supplier<String>> variableParamValueTable = new HashMap<>();;

Review Comment:
   ```suggestion
     private static final Map<String, Supplier<String>> variableParamValueTable = new HashMap<>();
   ```



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: reviews-unsubscribe@iotdb.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org