Home | About | Sematext search-lucene.com search-hadoop.com
 Search Hadoop and all its subprojects:

Switch to Threaded View
HDFS >> mail # dev >> Backwards compatibility of FileSystem interface.


Copy link to this message
-
Re: Backwards compatibility of FileSystem interface.
For context - It appears that over time the FileSystem has changed the
signature to the "createNonRecursive" method, (in 2.x there are 3
signatures, in 1.x, there are 2 signatures).

[root@jvyas hadoop-common]# git checkout branch-1.1
Switched to branch 'branch-1.1'
[root@jvyas hadoop-common]# grep NonRec
./src/core/org/apache/hadoop/fs/FileSystem.java
  public FSDataOutputStream createNonRecursive(Path f,
    return this.createNonRecursive(f, FsPermission.getDefault(),
  public FSDataOutputStream createNonRecursive(Path f, FsPermission permission,
    throw new IOException("createNonRecursive unsupported for this filesystem "

[root@jvyas hadoop-common]# git checkout branch-2.1.0-alpha
Switched to branch 'branch-2.1.0-alpha'

[root@jvyas hadoop-common]# cat
./hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/FileSystem.java
| grep NonRec
| grep NonRec

public FSDataOutputStream createNonRecursive(Path f,
    return this.createNonRecursive(f, FsPermission.getDefault(),
public FSDataOutputStream createNonRecursive(Path f, FsPermission permission,
     return createNonRecursive(f, permission,
public FSDataOutputStream createNonRecursive(Path f, FsPermission permission,
      throw new IOException("createNonRecursive unsupported for this filesystem
So, this (im assuming) is to retain backwards compatibility.  But it when
new API calls are made older FileSystem implementations dont work anymore.

For context, here is a closely related JIRA

https://issues.apache.org/jira/browse/HADOOP-6886?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
On Fri, May 31, 2013 at 6:09 AM, Steve Loughran <[EMAIL PROTECTED]>wrote:

> Jay, this is is more a common-dev question, as it goes beyond hdfs
>
> On 31 May 2013 02:07, Jay Vyas <[EMAIL PROTECTED]> wrote:
>
> > Hi :
> >
> > Are FileSystem interfaces gauranteed to retain semantics of the old
> > FileSystem contract?
> >
>
> retain the explicit semantics, yes. Implementations may change some
> implementation details which may becomes visible
>
>
> >
> > Im noticing that the new FileSystem uses the "CreateFlag" class, which
> > older ones did not, and I'm wondering wether the deprecation of some
> > FileSystem methods (i.e. createNonRecursive) will eventually be entirely
> > phased out.
> >
> > This is in reference to some issues with HBASE and the createNonRecursive
> > implementation which varies across different hadoop versions.
> >
> >
> can you point to the JIRAs? I presume they are append related?
>
>
> > --
> > Jay Vyas
> > http://jayunit100.blogspot.com
> >
>

--
Jay Vyas
http://jayunit100.blogspot.com