From cf15f6c71487998f74119186a4c6c4b7500e0993 Mon Sep 17 00:00:00 2001 From: confx Date: Sat, 16 Sep 2023 11:18:00 -0400 Subject: [PATCH] improve desc and add checker for replica-add.threadpool.size --- .../server/datanode/fsdataset/impl/BlockPoolSlice.java | 9 ++++++--- .../hadoop-hdfs/src/main/resources/hdfs-default.xml | 1 + 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/fsdataset/impl/BlockPoolSlice.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/fsdataset/impl/BlockPoolSlice.java index 4611df765f990..b618040a5f20a 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/fsdataset/impl/BlockPoolSlice.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/fsdataset/impl/BlockPoolSlice.java @@ -284,9 +284,12 @@ private synchronized static void initializeAddReplicaPool(Configuration conf, VOLUMES_REPLICA_ADD_THREADPOOL_SIZE); // Default pool sizes is max of (volume * number of bp_service) and // number of processor. - addReplicaThreadPool = new ForkJoinPool(conf.getInt( - DFSConfigKeys.DFS_DATANODE_VOLUMES_REPLICA_ADD_THREADPOOL_SIZE_KEY, - poolsize)); + int addReplicaThreadPoolSize = conf.getInt( + DFSConfigKeys.DFS_DATANODE_VOLUMES_REPLICA_ADD_THREADPOOL_SIZE_KEY, poolsize); + Preconditions.checkArgument(addReplicaThreadPoolSize > 0, + "%s should be a positive integer.", + DFSConfigKeys.DFS_DATANODE_VOLUMES_REPLICA_ADD_THREADPOOL_SIZE_KEY); + addReplicaThreadPool = new ForkJoinPool(addReplicaThreadPoolSize); } } diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/resources/hdfs-default.xml b/hadoop-hdfs-project/hadoop-hdfs/src/main/resources/hdfs-default.xml index c8f5993adbbb7..65e31da846d60 100755 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/resources/hdfs-default.xml +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/resources/hdfs-default.xml @@ -1472,6 +1472,7 @@ Specifies the maximum number of threads to use for adding block in volume. Default value for this configuration is max of (volume * number of bp_service, number of processor). + The value should be greater than 0.