HDFS-12412. Change ErasureCodingWorker.stripedReadPool to cached thread pool. (Lei (Eddy) Xu)
This commit is contained in:
parent
f4b6267465
commit
123342cd07
@ -571,8 +571,6 @@ public class DFSConfigKeys extends CommonConfigurationKeys {
|
|||||||
"dfs.namenode.ec.system.default.policy";
|
"dfs.namenode.ec.system.default.policy";
|
||||||
public static final String DFS_NAMENODE_EC_SYSTEM_DEFAULT_POLICY_DEFAULT =
|
public static final String DFS_NAMENODE_EC_SYSTEM_DEFAULT_POLICY_DEFAULT =
|
||||||
"RS-6-3-1024k";
|
"RS-6-3-1024k";
|
||||||
public static final String DFS_DN_EC_RECONSTRUCTION_STRIPED_READ_THREADS_KEY = "dfs.datanode.ec.reconstruction.stripedread.threads";
|
|
||||||
public static final int DFS_DN_EC_RECONSTRUCTION_STRIPED_READ_THREADS_DEFAULT = 20;
|
|
||||||
public static final String DFS_DN_EC_RECONSTRUCTION_STRIPED_READ_BUFFER_SIZE_KEY = "dfs.datanode.ec.reconstruction.stripedread.buffer.size";
|
public static final String DFS_DN_EC_RECONSTRUCTION_STRIPED_READ_BUFFER_SIZE_KEY = "dfs.datanode.ec.reconstruction.stripedread.buffer.size";
|
||||||
public static final int DFS_DN_EC_RECONSTRUCTION_STRIPED_READ_BUFFER_SIZE_DEFAULT = 64 * 1024;
|
public static final int DFS_DN_EC_RECONSTRUCTION_STRIPED_READ_BUFFER_SIZE_DEFAULT = 64 * 1024;
|
||||||
public static final String DFS_DN_EC_RECONSTRUCTION_STRIPED_READ_TIMEOUT_MILLIS_KEY = "dfs.datanode.ec.reconstruction.stripedread.timeout.millis";
|
public static final String DFS_DN_EC_RECONSTRUCTION_STRIPED_READ_TIMEOUT_MILLIS_KEY = "dfs.datanode.ec.reconstruction.stripedread.timeout.millis";
|
||||||
|
@ -53,19 +53,19 @@ public ErasureCodingWorker(Configuration conf, DataNode datanode) {
|
|||||||
this.datanode = datanode;
|
this.datanode = datanode;
|
||||||
this.conf = conf;
|
this.conf = conf;
|
||||||
|
|
||||||
initializeStripedReadThreadPool(conf.getInt(
|
initializeStripedReadThreadPool();
|
||||||
DFSConfigKeys.DFS_DN_EC_RECONSTRUCTION_STRIPED_READ_THREADS_KEY,
|
|
||||||
DFSConfigKeys.DFS_DN_EC_RECONSTRUCTION_STRIPED_READ_THREADS_DEFAULT));
|
|
||||||
initializeStripedBlkReconstructionThreadPool(conf.getInt(
|
initializeStripedBlkReconstructionThreadPool(conf.getInt(
|
||||||
DFSConfigKeys.DFS_DN_EC_RECONSTRUCTION_STRIPED_BLK_THREADS_KEY,
|
DFSConfigKeys.DFS_DN_EC_RECONSTRUCTION_STRIPED_BLK_THREADS_KEY,
|
||||||
DFSConfigKeys.DFS_DN_EC_RECONSTRUCTION_STRIPED_BLK_THREADS_DEFAULT));
|
DFSConfigKeys.DFS_DN_EC_RECONSTRUCTION_STRIPED_BLK_THREADS_DEFAULT));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initializeStripedReadThreadPool(int num) {
|
private void initializeStripedReadThreadPool() {
|
||||||
LOG.debug("Using striped reads; pool threads={}", num);
|
LOG.debug("Using striped reads");
|
||||||
|
|
||||||
stripedReadPool = new ThreadPoolExecutor(1, num, 60, TimeUnit.SECONDS,
|
// Essentially, this is a cachedThreadPool.
|
||||||
new SynchronousQueue<Runnable>(),
|
stripedReadPool = new ThreadPoolExecutor(0, Integer.MAX_VALUE,
|
||||||
|
60, TimeUnit.SECONDS,
|
||||||
|
new SynchronousQueue<>(),
|
||||||
new Daemon.DaemonFactory() {
|
new Daemon.DaemonFactory() {
|
||||||
private final AtomicInteger threadIndex = new AtomicInteger(0);
|
private final AtomicInteger threadIndex = new AtomicInteger(0);
|
||||||
|
|
||||||
|
@ -3048,15 +3048,6 @@
|
|||||||
</description>
|
</description>
|
||||||
</property>
|
</property>
|
||||||
|
|
||||||
<property>
|
|
||||||
<name>dfs.datanode.ec.reconstruction.stripedread.threads</name>
|
|
||||||
<value>20</value>
|
|
||||||
<description>
|
|
||||||
Number of threads used by the Datanode to read striped block
|
|
||||||
during background reconstruction work.
|
|
||||||
</description>
|
|
||||||
</property>
|
|
||||||
|
|
||||||
<property>
|
<property>
|
||||||
<name>dfs.datanode.ec.reconstruction.stripedread.buffer.size</name>
|
<name>dfs.datanode.ec.reconstruction.stripedread.buffer.size</name>
|
||||||
<value>65536</value>
|
<value>65536</value>
|
||||||
|
@ -137,7 +137,6 @@ Deployment
|
|||||||
Erasure coding background recovery work on the DataNodes can also be tuned via the following configuration parameters:
|
Erasure coding background recovery work on the DataNodes can also be tuned via the following configuration parameters:
|
||||||
|
|
||||||
1. `dfs.datanode.ec.reconstruction.stripedread.timeout.millis` - Timeout for striped reads. Default value is 5000 ms.
|
1. `dfs.datanode.ec.reconstruction.stripedread.timeout.millis` - Timeout for striped reads. Default value is 5000 ms.
|
||||||
1. `dfs.datanode.ec.reconstruction.stripedread.threads` - Number of concurrent reader threads. Default value is 20 threads.
|
|
||||||
1. `dfs.datanode.ec.reconstruction.stripedread.buffer.size` - Buffer size for reader service. Default value is 64KB.
|
1. `dfs.datanode.ec.reconstruction.stripedread.buffer.size` - Buffer size for reader service. Default value is 64KB.
|
||||||
1. `dfs.datanode.ec.reconstruction.stripedblock.threads.size` - Number of threads used by the Datanode for background reconstruction work. Default value is 8 threads.
|
1. `dfs.datanode.ec.reconstruction.stripedblock.threads.size` - Number of threads used by the Datanode for background reconstruction work. Default value is 8 threads.
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user