[jira] [Commented] (HDFS-9754) Avoid unnecessary getBlockCollection calls in BlockManager
[ https://issues.apache.org/jira/browse/HDFS-9754?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16269057#comment-16269057 ] Daryn Sharp commented on HDFS-9754: --- The patch did go beyond what the title and description imply, but it is a useful change that hopefully can be altered rather than wholesale reverted. Perhaps we can restore former/stable behavior by reverting: {code} -blockInfo.setBlockCollectionId(INodeId.INVALID_INODE_ID); +assert blockInfo.getBlockCollectionId() == INodeId.INVALID_INODE_ID; {code} Plus remove the new {{BlockInfo#delete}} and the calls to it. > Avoid unnecessary getBlockCollection calls in BlockManager > -- > > Key: HDFS-9754 > URL: https://issues.apache.org/jira/browse/HDFS-9754 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: namenode >Reporter: Jing Zhao >Assignee: Jing Zhao > Fix For: 2.9.0, 3.0.0-alpha1, 2.8.2 > > Attachments: HDFS-9754.000.patch, HDFS-9754.001.patch, > HDFS-9754.002.patch > > > Currently BlockManager calls {{Namesystem#getBlockCollection}} in order to: > 1. check if the block has already been abandoned > 2. identify the storage policy of the block > 3. meta save > For #1 we can use BlockInfo's internal state instead of checking if the > corresponding file still exists. -- This message was sent by Atlassian JIRA (v6.4.14#64029) - To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org
[jira] [Commented] (HDFS-9754) Avoid unnecessary getBlockCollection calls in BlockManager
[ https://issues.apache.org/jira/browse/HDFS-9754?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16263565#comment-16263565 ] Konstantin Shvachko commented on HDFS-9754: --- Proposing to revert this in HDFS-12638. [See this comment|https://issues.apache.org/jira/browse/HDFS-12638?focusedCommentId=16263561=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-16263561] for more details. > Avoid unnecessary getBlockCollection calls in BlockManager > -- > > Key: HDFS-9754 > URL: https://issues.apache.org/jira/browse/HDFS-9754 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: namenode >Reporter: Jing Zhao >Assignee: Jing Zhao > Fix For: 2.9.0, 3.0.0-alpha1, 2.8.2 > > Attachments: HDFS-9754.000.patch, HDFS-9754.001.patch, > HDFS-9754.002.patch > > > Currently BlockManager calls {{Namesystem#getBlockCollection}} in order to: > 1. check if the block has already been abandoned > 2. identify the storage policy of the block > 3. meta save > For #1 we can use BlockInfo's internal state instead of checking if the > corresponding file still exists. -- This message was sent by Atlassian JIRA (v6.4.14#64029) - To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org
[jira] [Commented] (HDFS-9754) Avoid unnecessary getBlockCollection calls in BlockManager
[ https://issues.apache.org/jira/browse/HDFS-9754?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16056107#comment-16056107 ] Kihwal Lee commented on HDFS-9754: -- Cherry-picked to branch-2.8. > Avoid unnecessary getBlockCollection calls in BlockManager > -- > > Key: HDFS-9754 > URL: https://issues.apache.org/jira/browse/HDFS-9754 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: namenode >Reporter: Jing Zhao >Assignee: Jing Zhao > Fix For: 2.9.0, 3.0.0-alpha1, 2.8.2 > > Attachments: HDFS-9754.000.patch, HDFS-9754.001.patch, > HDFS-9754.002.patch > > > Currently BlockManager calls {{Namesystem#getBlockCollection}} in order to: > 1. check if the block has already been abandoned > 2. identify the storage policy of the block > 3. meta save > For #1 we can use BlockInfo's internal state instead of checking if the > corresponding file still exists. -- This message was sent by Atlassian JIRA (v6.4.14#64029) - To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org
[jira] [Commented] (HDFS-9754) Avoid unnecessary getBlockCollection calls in BlockManager
[ https://issues.apache.org/jira/browse/HDFS-9754?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15145105#comment-15145105 ] Hudson commented on HDFS-9754: -- FAILURE: Integrated in Hadoop-trunk-Commit #9296 (See [https://builds.apache.org/job/Hadoop-trunk-Commit/9296/]) HDFS-9754. Avoid unnecessary getBlockCollection calls in BlockManager. (jing9: rev 972782d9568e0849484c027f27c1638ba50ec56e) * hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestNameNodeMetadataConsistency.java * hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INode.java * hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java * hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/Namesystem.java * hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/INodeFile.java * hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlocksMap.java * hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockManager.java * hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt * hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/BlockInfo.java * hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSDirTruncateOp.java * hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/snapshot/FileWithSnapshotFeature.java > Avoid unnecessary getBlockCollection calls in BlockManager > -- > > Key: HDFS-9754 > URL: https://issues.apache.org/jira/browse/HDFS-9754 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: namenode >Reporter: Jing Zhao >Assignee: Jing Zhao > Attachments: HDFS-9754.000.patch, HDFS-9754.001.patch, > HDFS-9754.002.patch > > > Currently BlockManager calls {{Namesystem#getBlockCollection}} in order to: > 1. check if the block has already been abandoned > 2. identify the storage policy of the block > 3. meta save > For #1 we can use BlockInfo's internal state instead of checking if the > corresponding file still exists. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HDFS-9754) Avoid unnecessary getBlockCollection calls in BlockManager
[ https://issues.apache.org/jira/browse/HDFS-9754?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15143903#comment-15143903 ] Hadoop QA commented on HDFS-9754: - | (x) *{color:red}-1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || | {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 16m 32s {color} | {color:blue} Docker mode activated. {color} | | {color:green}+1{color} | {color:green} @author {color} | {color:green} 0m 0s {color} | {color:green} The patch does not contain any @author tags. {color} | | {color:green}+1{color} | {color:green} test4tests {color} | {color:green} 0m 0s {color} | {color:green} The patch appears to include 1 new or modified test files. {color} | | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 7m 1s {color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 40s {color} | {color:green} trunk passed with JDK v1.8.0_72 {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 42s {color} | {color:green} trunk passed with JDK v1.7.0_95 {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 25s {color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 0m 52s {color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green} 0m 13s {color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 1m 55s {color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 1m 8s {color} | {color:green} trunk passed with JDK v1.8.0_72 {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 1m 47s {color} | {color:green} trunk passed with JDK v1.7.0_95 {color} | | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 0m 45s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 38s {color} | {color:green} the patch passed with JDK v1.8.0_72 {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 0m 38s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 39s {color} | {color:green} the patch passed with JDK v1.7.0_95 {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 0m 39s {color} | {color:green} the patch passed {color} | | {color:red}-1{color} | {color:red} checkstyle {color} | {color:red} 0m 22s {color} | {color:red} hadoop-hdfs-project/hadoop-hdfs: patch generated 1 new + 423 unchanged - 9 fixed = 424 total (was 432) {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 0m 50s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green} 0m 10s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} whitespace {color} | {color:green} 0m 0s {color} | {color:green} Patch has no whitespace issues. {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 2m 6s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 1m 3s {color} | {color:green} the patch passed with JDK v1.8.0_72 {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 1m 43s {color} | {color:green} the patch passed with JDK v1.7.0_95 {color} | | {color:red}-1{color} | {color:red} unit {color} | {color:red} 52m 10s {color} | {color:red} hadoop-hdfs in the patch failed with JDK v1.8.0_72. {color} | | {color:red}-1{color} | {color:red} unit {color} | {color:red} 53m 58s {color} | {color:red} hadoop-hdfs in the patch failed with JDK v1.7.0_95. {color} | | {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m 27s {color} | {color:green} Patch does not generate ASF License warnings. {color} | | {color:black}{color} | {color:black} {color} | {color:black} 147m 8s {color} | {color:black} {color} | \\ \\ || Reason || Tests || | JDK v1.8.0_72 Failed junit tests | hadoop.fs.TestHdfsNativeCodeLoader | | JDK v1.7.0_95 Failed junit tests | hadoop.fs.TestHdfsNativeCodeLoader | \\ \\ || Subsystem || Report/Notes || | Docker | Image:yetus/hadoop:0ca8df7 | | JIRA Patch URL | https://issues.apache.org/jira/secure/attachment/12787570/HDFS-9754.002.patch | | JIRA Issue | HDFS-9754 | | Optional Tests | asflicense compile javac javadoc mvninstall mvnsite unit findbugs checkstyle | | uname | Linux f267048f43d7 3.13.0-36-lowlatency #63-Ubuntu SMP PREEMPT Wed Sep 3 21:56:12 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux | |
[jira] [Commented] (HDFS-9754) Avoid unnecessary getBlockCollection calls in BlockManager
[ https://issues.apache.org/jira/browse/HDFS-9754?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15143112#comment-15143112 ] Tsz Wo Nicholas Sze commented on HDFS-9754: --- > ... So I think we should check the block's state instead of the file's state. > Does this make sense to you, Nicholas? Yes, it makes sense. Thanks for explaining it! The patch needs to be updated with trunk. Otherwise, it looks good. +1 > Avoid unnecessary getBlockCollection calls in BlockManager > -- > > Key: HDFS-9754 > URL: https://issues.apache.org/jira/browse/HDFS-9754 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: namenode >Reporter: Jing Zhao >Assignee: Jing Zhao > Attachments: HDFS-9754.000.patch, HDFS-9754.001.patch > > > Currently BlockManager calls {{Namesystem#getBlockCollection}} in order to: > 1. check if the block has already been abandoned > 2. identify the storage policy of the block > 3. meta save > For #1 we can use BlockInfo's internal state instead of checking if the > corresponding file still exists. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HDFS-9754) Avoid unnecessary getBlockCollection calls in BlockManager
[ https://issues.apache.org/jira/browse/HDFS-9754?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15133534#comment-15133534 ] Hadoop QA commented on HDFS-9754: - | (x) *{color:red}-1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || | {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 0m 11s {color} | {color:blue} Docker mode activated. {color} | | {color:green}+1{color} | {color:green} @author {color} | {color:green} 0m 0s {color} | {color:green} The patch does not contain any @author tags. {color} | | {color:green}+1{color} | {color:green} test4tests {color} | {color:green} 0m 0s {color} | {color:green} The patch appears to include 1 new or modified test files. {color} | | {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue} 0m 17s {color} | {color:blue} Maven dependency ordering for branch {color} | | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 7m 7s {color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 45s {color} | {color:green} trunk passed with JDK v1.8.0_66 {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 44s {color} | {color:green} trunk passed with JDK v1.7.0_91 {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 25s {color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 0m 55s {color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green} 0m 14s {color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 1m 57s {color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 1m 8s {color} | {color:green} trunk passed with JDK v1.8.0_66 {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 1m 52s {color} | {color:green} trunk passed with JDK v1.7.0_91 {color} | | {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue} 0m 8s {color} | {color:blue} Maven dependency ordering for patch {color} | | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 0m 48s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 36s {color} | {color:green} the patch passed with JDK v1.8.0_66 {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 0m 36s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 37s {color} | {color:green} the patch passed with JDK v1.7.0_91 {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 0m 37s {color} | {color:green} the patch passed {color} | | {color:red}-1{color} | {color:red} checkstyle {color} | {color:red} 0m 23s {color} | {color:red} hadoop-hdfs-project/hadoop-hdfs: patch generated 1 new + 423 unchanged - 9 fixed = 424 total (was 432) {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 0m 47s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green} 0m 11s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} whitespace {color} | {color:green} 0m 0s {color} | {color:green} Patch has no whitespace issues. {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 2m 3s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 1m 3s {color} | {color:green} the patch passed with JDK v1.8.0_66 {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 1m 45s {color} | {color:green} the patch passed with JDK v1.7.0_91 {color} | | {color:red}-1{color} | {color:red} unit {color} | {color:red} 65m 2s {color} | {color:red} hadoop-hdfs in the patch failed with JDK v1.8.0_66. {color} | | {color:red}-1{color} | {color:red} unit {color} | {color:red} 56m 1s {color} | {color:red} hadoop-hdfs in the patch failed with JDK v1.7.0_91. {color} | | {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m 21s {color} | {color:green} Patch does not generate ASF License warnings. {color} | | {color:black}{color} | {color:black} {color} | {color:black} 147m 26s {color} | {color:black} {color} | \\ \\ || Reason || Tests || | JDK v1.8.0_66 Failed junit tests | hadoop.hdfs.server.blockmanagement.TestComputeInvalidateWork | | | hadoop.hdfs.server.datanode.TestBlockScanner | | JDK v1.8.0_66 Timed out junit tests | org.apache.hadoop.hdfs.TestLeaseRecovery2 | | JDK v1.7.0_91 Failed junit tests |
[jira] [Commented] (HDFS-9754) Avoid unnecessary getBlockCollection calls in BlockManager
[ https://issues.apache.org/jira/browse/HDFS-9754?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15132403#comment-15132403 ] Tsz Wo Nicholas Sze commented on HDFS-9754: --- Condition A and Condition B are different. Could you explain why Condition B can replace Condition A? - Condition A: {{bc.isUnderConstruction() && block.equals(bc.getLastBlock())}} //last block of an under construction file; it could be in COMMITTED or COMPLETE state - Condition B: {{!block.isCompleteOrCommitted()}} //neither COMMITTED nor COMPLETE; it may not be the last block. > Avoid unnecessary getBlockCollection calls in BlockManager > -- > > Key: HDFS-9754 > URL: https://issues.apache.org/jira/browse/HDFS-9754 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: namenode >Reporter: Jing Zhao >Assignee: Jing Zhao > Attachments: HDFS-9754.000.patch > > > Currently BlockManager calls {{Namesystem#getBlockCollection}} in order to: > 1. check if the block has already been abandoned > 2. identify the storage policy of the block > 3. meta save > For #1 we can use BlockInfo's internal state instead of checking if the > corresponding file still exists. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HDFS-9754) Avoid unnecessary getBlockCollection calls in BlockManager
[ https://issues.apache.org/jira/browse/HDFS-9754?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15132863#comment-15132863 ] Jing Zhao commented on HDFS-9754: - Thanks for the review, [~vinayrpet] and [~szetszwo]! bq. INodeFile#collectBlocksBeyondMax(..) and related changes are not exactly related to this Jira This change can help us get rid of {{BlocksMapUpdateInfo#removeDeleteBlock}}. Without the change when doing truncation on a snapshotted file, the current code first collects blocks that will be truncated, then use the latest snapshot to check if any block should be retained. In this way we cannot assign {{bcId}} to {{INVALID_INODE_ID}} when adding block into {{BlocksMapUpdateInfo}}. bq. Condition A and Condition B are different Thanks for the analysis, Nicholas. So looks like when we add a block into the under-replicated queue, we always make sure the block is completed. Then later if the block is no longer in complete/committed state, it must have been appended or truncated. Then this block should be the last block of the file, and the block and the corresponding file should now be tracked by file lease. Thus looks like we then do not need to schedule recovery for this block. In the meanwhile, condition A has not considered the case where the file is appended on a new block (i.e., the variable length block support). So I think we should check the block's state instead of the file's state. Does this make sense to you, Nicholas? > Avoid unnecessary getBlockCollection calls in BlockManager > -- > > Key: HDFS-9754 > URL: https://issues.apache.org/jira/browse/HDFS-9754 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: namenode >Reporter: Jing Zhao >Assignee: Jing Zhao > Attachments: HDFS-9754.000.patch > > > Currently BlockManager calls {{Namesystem#getBlockCollection}} in order to: > 1. check if the block has already been abandoned > 2. identify the storage policy of the block > 3. meta save > For #1 we can use BlockInfo's internal state instead of checking if the > corresponding file still exists. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HDFS-9754) Avoid unnecessary getBlockCollection calls in BlockManager
[ https://issues.apache.org/jira/browse/HDFS-9754?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15131492#comment-15131492 ] Jing Zhao commented on HDFS-9754: - Looking into the current code, we have: # When added into the blocksMap, a block is always associated with a file # A reported replica will be invalidated if there is no BlockInfo record in blocksMap # A file is removed from inodeMap only when we do concat/delete/deleteSnapshot/rename/create. During these ops we always use a map to collect blocks that should be deleted. # Removing inodes from INodeMap is in the write lock, while removing blocks from blocksMap is not. Thus when scheduling recovery work we need to do extra check to see if the block has already been abandoned. Based on the above observations, looks like when we collect to-be-deleted blocks, we can set its BlockCollection id ({{bcId}}) to {{INodeId.INVALID_INODE_ID}}. Then later we can use {{bcId}} to see if it has already been abandoned. In this way we can avoid some {{getBlockCollection}} calls triggered from BlockManager to FSNamesystem/FSDirectory. > Avoid unnecessary getBlockCollection calls in BlockManager > -- > > Key: HDFS-9754 > URL: https://issues.apache.org/jira/browse/HDFS-9754 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: namenode >Reporter: Jing Zhao >Assignee: Jing Zhao > > Currently BlockManager calls {{Namesystem#getBlockCollection}} in order to: > 1. check if the block has already been abandoned > 2. identify the storage policy of the block > 3. meta save > For #1 we can use BlockInfo's internal state instead of checking if the > corresponding file still exists. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HDFS-9754) Avoid unnecessary getBlockCollection calls in BlockManager
[ https://issues.apache.org/jira/browse/HDFS-9754?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15131668#comment-15131668 ] Hadoop QA commented on HDFS-9754: - | (x) *{color:red}-1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || | {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 0m 0s {color} | {color:blue} Docker mode activated. {color} | | {color:green}+1{color} | {color:green} @author {color} | {color:green} 0m 0s {color} | {color:green} The patch does not contain any @author tags. {color} | | {color:red}-1{color} | {color:red} test4tests {color} | {color:red} 0m 0s {color} | {color:red} The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch. {color} | | {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue} 0m 13s {color} | {color:blue} Maven dependency ordering for branch {color} | | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 7m 11s {color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 42s {color} | {color:green} trunk passed with JDK v1.8.0_66 {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 42s {color} | {color:green} trunk passed with JDK v1.7.0_91 {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 26s {color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 0m 54s {color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green} 0m 14s {color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 1m 57s {color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 1m 7s {color} | {color:green} trunk passed with JDK v1.8.0_66 {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 1m 51s {color} | {color:green} trunk passed with JDK v1.7.0_91 {color} | | {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue} 0m 8s {color} | {color:blue} Maven dependency ordering for patch {color} | | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 0m 47s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 40s {color} | {color:green} the patch passed with JDK v1.8.0_66 {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 0m 40s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 41s {color} | {color:green} the patch passed with JDK v1.7.0_91 {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 0m 41s {color} | {color:green} the patch passed {color} | | {color:red}-1{color} | {color:red} checkstyle {color} | {color:red} 0m 24s {color} | {color:red} hadoop-hdfs-project/hadoop-hdfs: patch generated 1 new + 423 unchanged - 9 fixed = 424 total (was 432) {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 0m 52s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green} 0m 12s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} whitespace {color} | {color:green} 0m 0s {color} | {color:green} Patch has no whitespace issues. {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 2m 12s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 1m 8s {color} | {color:green} the patch passed with JDK v1.8.0_66 {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 1m 47s {color} | {color:green} the patch passed with JDK v1.7.0_91 {color} | | {color:red}-1{color} | {color:red} unit {color} | {color:red} 61m 51s {color} | {color:red} hadoop-hdfs in the patch failed with JDK v1.8.0_66. {color} | | {color:red}-1{color} | {color:red} unit {color} | {color:red} 56m 44s {color} | {color:red} hadoop-hdfs in the patch failed with JDK v1.7.0_91. {color} | | {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m 23s {color} | {color:green} Patch does not generate ASF License warnings. {color} | | {color:black}{color} | {color:black} {color} | {color:black} 145m 26s {color} | {color:black} {color} | \\ \\ || Reason || Tests || | JDK v1.8.0_66 Failed junit tests | hadoop.hdfs.TestRollingUpgrade | | | hadoop.hdfs.server.datanode.fsdataset.impl.TestSpaceReservation | | | hadoop.hdfs.TestDatanodeDeath | |
[jira] [Commented] (HDFS-9754) Avoid unnecessary getBlockCollection calls in BlockManager
[ https://issues.apache.org/jira/browse/HDFS-9754?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15131840#comment-15131840 ] Vinayakumar B commented on HDFS-9754: - Thanks [~jingzhao] for the patch. changes looks good. Have one comment, IMO {{INodeFile#collectBlocksBeyondMax(..)}} and related changes are not exactly related to this Jira. May be this can be done in separate.? > Avoid unnecessary getBlockCollection calls in BlockManager > -- > > Key: HDFS-9754 > URL: https://issues.apache.org/jira/browse/HDFS-9754 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: namenode >Reporter: Jing Zhao >Assignee: Jing Zhao > Attachments: HDFS-9754.000.patch > > > Currently BlockManager calls {{Namesystem#getBlockCollection}} in order to: > 1. check if the block has already been abandoned > 2. identify the storage policy of the block > 3. meta save > For #1 we can use BlockInfo's internal state instead of checking if the > corresponding file still exists. -- This message was sent by Atlassian JIRA (v6.3.4#6332)