hadoop-hdfs-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kihwal Lee (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HDFS-3453) HDFS does not use ClientProtocol in a backward-compatible way
Date Wed, 23 May 2012 14:14:41 GMT

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

Kihwal Lee commented on HDFS-3453:

A bit more on the incompatibility:

ClientProtocol and namenode still have the original method and implementation. So pre-1.0
clients can still talk to 1.0.x namenodes. The 1.0.x client, on the other hand, internally
calls only the new method; The original create method is never called. Since pre-1.0 namenode
does not understand this new method, 1.0 clients cannot create files on pre-1.0 clusters.
The patch makes client call the new method only when createParent is set to false. All others
will be fulfilled by the original method.

The protocol-level incompatibility still exists, but that only manifests when the new file
system level method, FileSystem#createNonRecursive(), is explicitly called. Normal use cases
within hadoop do not use this method. Currently only SequenceFile#createWriter() calls it
when caller specifically asks for it. This was added to support HBase. 

In summary, 1.0.x and pre-1.0 are incompatible, but become interoperable with this patch for
most use cases. 
> HDFS does not use ClientProtocol in a backward-compatible way
> -------------------------------------------------------------
>                 Key: HDFS-3453
>                 URL: https://issues.apache.org/jira/browse/HDFS-3453
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: hdfs client
>    Affects Versions: 1.0.0
>            Reporter: Kihwal Lee
>            Assignee: Kihwal Lee
>             Fix For: 1.1.0
>         Attachments: hdfs-3453-branch-1.patch
> HDFS-617 was brought into branch-0.20-security/branch-1 to support non-recursive create,
along with HADOOP-6840 and HADOOP-6886. However, the changes in HDFS was done in an incompatible
way, making the client unusable against older clusters, even when plain old create() is called.
This is because DFS now internally calls create() through the newly introduced method. By
simply changing how the methods are wired internally, we can remove this limitation. We may
eventually switch back to the approach in HDFS-617 when the majority of users adopt branch-1
based releases.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira


View raw message