hadoop-hdfs-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Eli Collins (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HDFS-3828) Block Scanner rescans blocks too frequently
Date Thu, 06 Sep 2012 05:01:07 GMT

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

Eli Collins commented on HDFS-3828:
-----------------------------------

+1 latest patch is good to go.  test failure is unrelated.

bq. so I'm inclined to keep it as is; making one of these tests into an assert seems jarring
to me.

assertions aren't jarring if you expect the assertion to hold. Do you agree that the invariant
(that we should never get a scanner for a block pool with no scanner) should hold? If yes
please file a follow on jira to address this case and the other uses (where the invariant
might hold as well). If not, then note that printBlockReport and getNextBPScanner do *not*
check for null so they will NPE and we should fix them. Also, looks like the test checks the
return value to see if the scanners are initialized yet. Either way we can handle it in a
separate jira.

Also per my previous comment please file the jira for the proposed refactoring.
                
> Block Scanner rescans blocks too frequently
> -------------------------------------------
>
>                 Key: HDFS-3828
>                 URL: https://issues.apache.org/jira/browse/HDFS-3828
>             Project: Hadoop HDFS
>          Issue Type: Bug
>    Affects Versions: 0.23.0, 2.0.0-alpha
>            Reporter: Andy Isaacson
>            Assignee: Andy Isaacson
>         Attachments: hdfs-3828-1.txt, hdfs-3828-2.txt, hdfs-3828-3.txt, hdfs3828.txt
>
>
> {{BlockPoolSliceScanner#scan}} calls cleanUp every time it's invoked from {{DataBlockScanner#run}}
via {{scanBlockPoolSlice}}.  But cleanUp unconditionally roll()s the verificationLogs, so
after two iterations we have lost the first iteration of block verification times.  As a result
a cluster with just one block repeatedly rescans it every 10 seconds:
> {noformat}
> 2012-08-16 15:59:57,884 INFO  datanode.BlockPoolSliceScanner (BlockPoolSliceScanner.java:verifyBlock(391))
- Verification succeeded for BP-2101131164-172.29.122.91-1337906886255:blk_7919273167187535506_4915
> 2012-08-16 16:00:07,904 INFO  datanode.BlockPoolSliceScanner (BlockPoolSliceScanner.java:verifyBlock(391))
- Verification succeeded for BP-2101131164-172.29.122.91-1337906886255:blk_7919273167187535506_4915
> 2012-08-16 16:00:17,925 INFO  datanode.BlockPoolSliceScanner (BlockPoolSliceScanner.java:verifyBlock(391))
- Verification succeeded for BP-2101131164-172.29.122.91-1337906886255:blk_7919273167187535506_4915
> {noformat}
> {quote}
> To fix this, we need to avoid roll()ing the logs multiple times per period.

--
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

Mime
View raw message