[ 
https://issues.apache.org/jira/browse/HDFS-9642?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15093474#comment-15093474
 ] 

Kai Zheng commented on HDFS-9642:
---------------------------------

Looks like creating the unused thread pool (with core thread 1, setting 
{{allowsCoreThreadTimeOut}} true) for replication won't incur much overhead, 
but creating it using the default value may be problematic. It would still rely 
on a configuration value to calculate the thread pool size as current code 
does, since it's not clear how many read tasks will happen in a client. Suggest 
changing the current configuration item {{THREADPOOL_SIZE_KEY}} to something 
like {{THREADPOOL_SIZE_FACTOR}}, then the pool size can be calculated as: 
{{THREADPOOL_SIZE_FACTOR * BLOCKS_IN_ONE_GROUP}}. But then how about changing 
to use other EC policy with different schema? Need some discussion.

> Create reader threads pool on demand according to erasure coding policy
> -----------------------------------------------------------------------
>
>                 Key: HDFS-9642
>                 URL: https://issues.apache.org/jira/browse/HDFS-9642
>             Project: Hadoop HDFS
>          Issue Type: Improvement
>            Reporter: Kai Zheng
>            Assignee: Kai Zheng
>
> While investigating some issue it was noticed in {{DFSClient}}, 
> {{STRIPED_READ_THREAD_POOL}} will be always created during initialization and 
> by default regardless the used erasure coding policy it uses the value *18*.
> This suggests:
> * Create the thread pool on demand only in striping case.
> * When create the pool, use a good value respecting the used erasure coding 
> policy.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to