[ https://issues.apache.org/jira/browse/HDFS-8501?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15828975#comment-15828975 ]
Hadoop QA commented on HDFS-8501: --------------------------------- | (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:red}-1{color} | {color:red} docker {color} | {color:red} 0m 1s{color} | {color:red} Docker failed to build yetus/hadoop:a890a31. {color} | \\ \\ || Subsystem || Report/Notes || | JIRA Issue | HDFS-8501 | | JIRA Patch URL | https://issues.apache.org/jira/secure/attachment/12752982/HDFS-8501-HDFS-7285.01.patch | | Console output | https://builds.apache.org/job/PreCommit-HDFS-Build/18201/console | | Powered by | Apache Yetus 0.5.0-SNAPSHOT http://yetus.apache.org | This message was automatically generated. > Erasure Coding: BlockInfoStriped.removeStorage(..) move storage with same > blockIndex to front slot > -------------------------------------------------------------------------------------------------- > > Key: HDFS-8501 > URL: https://issues.apache.org/jira/browse/HDFS-8501 > Project: Hadoop HDFS > Issue Type: Sub-task > Reporter: Walter Su > Assignee: Walter Su > Attachments: HDFS-8501-HDFS-7285.01.patch > > > Erasure Coding: Improve memory efficiency of BlockInfoStriped > Assume we have a BlockInfoStriped: > {noformat} > triplets[] = {s0, s1, s2, s3} > indices[] = {0, 1, 2, 3} > {noformat} > {{s0}} means {{storage_0}} > When we run balancer/mover to re-locate replica on s2, firstly it becomes: > {noformat} > triplets[] = {s0, s1, s2, s3, s4} > indices[] = {0, 1, 2, 3, 2} > {noformat} > Then the replica on s2 is removed, finally it becomes: > {noformat} > triplets[] = {s0, s1, null, s3, s4} > indices[] = {0, 1, -1, 3, 2} > {noformat} > The worst case is: > {noformat} > triplets[] = {null, null, null, null, s4, s5, s6, s7} > indices[] = {-1, -1, -1, -1, 0, 1, 2, 3} > {noformat} > We should learn from {{BlockInfoContiguous.removeStorage(..)}}. When a > storage is removed, we move the last item front. > With the improvement, the worst case become: > {noformat} > triplets[] = {s4, s5, s6, s7, null} > indices[] = {0, 1, 2, 3, -1} > {noformat} > We have an empty slot. > Notes: > Assume we copy 4 storage first, then delete 4. Even with the improvement, the > worst case could be: > {noformat} > triplets[] = {s4, s5, s6, s7, null, null, null, null} > indices[] = {0, 1, 2, 3, -1, -1, -1, -1} > {noformat} > But the Balancer uses {{delHint}}. So when add one will always delete one. So > this case won't happen for striped and contiguous blocks. > *idx_i must be moved to slot_i.* So slot_i will have idx_i. So we can do > further improvement in HDFS-8032. -- This message was sent by Atlassian JIRA (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org