[
https://issues.apache.org/jira/browse/HDFS-3913?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Eli Collins updated HDFS-3913:
------------------------------
Summary: DataBlockScanner should not call scanBlockPoolSlice when there's
no work to do (was: Refactor DataBlockScanner and clean up tests)
This isn't just refactoring, per the following comment the goal is to
restructure the flow to scanBlockPoolSlice to avoid the unnecessary work.
https://issues.apache.org/jira/browse/HDFS-3828?focusedCommentId=13439972&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13439972
> DataBlockScanner should not call scanBlockPoolSlice when there's no work to do
> ------------------------------------------------------------------------------
>
> Key: HDFS-3913
> URL: https://issues.apache.org/jira/browse/HDFS-3913
> Project: Hadoop HDFS
> Issue Type: Bug
> Affects Versions: 2.0.1-alpha
> Reporter: Andy Isaacson
> Priority: Minor
>
> In HDFS-3828 Eli observed
> bq. In getTotalScans rather than throw IOE if given a bpid w/o a scanner I
> believe this should be an assert (we should always have a scanner for a block
> pool if we've enbabled scanning, which we have if we're in DataBlockScanner)
> and Andy suggested
> bq. we could propagate a "please wake me up at time T" up from
> BlockPoolSliceScanner to DataBlockScanner#run and adjust the sleep time
> there, accordingly. If all threadpools continue to have work to do, then
> preserve the existing 5-second sleep; if all threadpools are done working
> then DataBlockScanner could go to sleep for much longer.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira