HDFS-16586. Purge FsDatasetAsyncDiskService threadgroup; it causes BP… (#4348)
Remove the ThreadGroup used by executor factories; they are unused and ThreadGroups auto-destroy when their Thread-member count goes to zero. This behavior is incompatible with the configuration we have on the per-volume executor which is set to let all threads die if no use inside the keepalive time.
This commit is contained in:
parent
2cc21714bc
commit
ad9b6e8d81
|
@ -73,7 +73,6 @@ class FsDatasetAsyncDiskService {
|
||||||
|
|
||||||
private final DataNode datanode;
|
private final DataNode datanode;
|
||||||
private final FsDatasetImpl fsdatasetImpl;
|
private final FsDatasetImpl fsdatasetImpl;
|
||||||
private final ThreadGroup threadGroup;
|
|
||||||
private Map<String, ThreadPoolExecutor> executors
|
private Map<String, ThreadPoolExecutor> executors
|
||||||
= new HashMap<String, ThreadPoolExecutor>();
|
= new HashMap<String, ThreadPoolExecutor>();
|
||||||
private Map<String, Set<Long>> deletedBlockIds
|
private Map<String, Set<Long>> deletedBlockIds
|
||||||
|
@ -91,7 +90,6 @@ class FsDatasetAsyncDiskService {
|
||||||
FsDatasetAsyncDiskService(DataNode datanode, FsDatasetImpl fsdatasetImpl) {
|
FsDatasetAsyncDiskService(DataNode datanode, FsDatasetImpl fsdatasetImpl) {
|
||||||
this.datanode = datanode;
|
this.datanode = datanode;
|
||||||
this.fsdatasetImpl = fsdatasetImpl;
|
this.fsdatasetImpl = fsdatasetImpl;
|
||||||
this.threadGroup = new ThreadGroup(getClass().getSimpleName());
|
|
||||||
maxNumThreadsPerVolume = datanode.getConf().getInt(
|
maxNumThreadsPerVolume = datanode.getConf().getInt(
|
||||||
DFSConfigKeys.DFS_DATANODE_FSDATASETASYNCDISK_MAX_THREADS_PER_VOLUME_KEY,
|
DFSConfigKeys.DFS_DATANODE_FSDATASETASYNCDISK_MAX_THREADS_PER_VOLUME_KEY,
|
||||||
DFSConfigKeys.DFS_DATANODE_FSDATASETASYNCDISK_MAX_THREADS_PER_VOLUME_DEFAULT);
|
DFSConfigKeys.DFS_DATANODE_FSDATASETASYNCDISK_MAX_THREADS_PER_VOLUME_DEFAULT);
|
||||||
|
@ -110,7 +108,7 @@ class FsDatasetAsyncDiskService {
|
||||||
synchronized (this) {
|
synchronized (this) {
|
||||||
thisIndex = counter++;
|
thisIndex = counter++;
|
||||||
}
|
}
|
||||||
Thread t = new Thread(threadGroup, r);
|
Thread t = new Thread(r);
|
||||||
t.setName("Async disk worker #" + thisIndex +
|
t.setName("Async disk worker #" + thisIndex +
|
||||||
" for volume " + volume);
|
" for volume " + volume);
|
||||||
return t;
|
return t;
|
||||||
|
|
Loading…
Reference in New Issue