hadoop-hdfs-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Todd Lipcon (JIRA)" <j...@apache.org>
Subject [jira] Resolved: (HDFS-404) Why open method in class DFSClient would compare old LocatedBlocks and new LocatedBlocks?
Date Fri, 25 Sep 2009 05:39:16 GMT

     [ https://issues.apache.org/jira/browse/HDFS-404?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Todd Lipcon resolved HDFS-404.
------------------------------

    Resolution: Invalid
      Assignee: Todd Lipcon

Hi Gianyu,

This is not the forum for questions about the code.

To quickly answer your question, the comparison is about the Blocks, not the LocatedBlocks.
It is essentialy an assertion that the actual block IDs in the file have not changed - if
they have it indicates that the file has been swapped with another file underneath the reader.
Making sure the blocks have the same IDs causes this to throw an error instead of starting
to read the other file.

Resolving as invalid.

> Why open method in class DFSClient would compare old LocatedBlocks and new LocatedBlocks?
> -----------------------------------------------------------------------------------------
>
>                 Key: HDFS-404
>                 URL: https://issues.apache.org/jira/browse/HDFS-404
>             Project: Hadoop HDFS
>          Issue Type: Wish
>            Reporter: qianyu
>            Assignee: Todd Lipcon
>   Original Estimate: 168h
>  Remaining Estimate: 168h
>
> This is in the package of org.apache.hadoop.hdfs, DFSClient.openInfo():
> if (locatedBlocks != null) {
>         Iterator<LocatedBlock> oldIter = locatedBlocks.getLocatedBlocks().iterator();
>         Iterator<LocatedBlock> newIter = newInfo.getLocatedBlocks().iterator();
>         while (oldIter.hasNext() && newIter.hasNext()) {
>           if (! oldIter.next().getBlock().equals(newIter.next().getBlock())) {
>             throw new IOException("Blocklist for " + src + " has changed!");
>           }
>         }
>       }
> Why we need compare old LocatedBlocks and new LocatedBlocks, and in what case it happen?
> Why not "this.locatedBlocks = newInfo" directly?

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message