You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ozone.apache.org by "Yiqun Lin (Jira)" <ji...@apache.org> on 2020/02/23 14:36:00 UTC

[jira] [Updated] (HDDS-3058) OzoneFileSystem should override unsupported set type FileSystem API

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

Yiqun Lin updated HDDS-3058:
----------------------------
    Description: 
Currently, OzoneFileSystem only implements some common useful FileSystem APIs and most of other API are not supported and inherited from parent class FileSystem by default. However, FileSystem do nothing in some set type method, like setReplication, setOwner.
{code:java}
 public void setVerifyChecksum(boolean verifyChecksum) {
    //doesn't do anything
  }

  public void setWriteChecksum(boolean writeChecksum) {
    //doesn't do anything
  }

  public boolean setReplication(Path src, short replication)
    throws IOException {
    return true;
  }

  public void setPermission(Path p, FsPermission permission
      ) throws IOException {
  }

  public void setOwner(Path p, String username, String groupname
      ) throws IOException {
  }

  public void setTimes(Path p, long mtime, long atime
      ) throws IOException {
  }
{code}
This set type functions depend on the sub-filesystem implementation. We need to to throw unsupported exception if sub-filesystem cannot support this. Otherwise, it will make users confused to use hadoop fs -setrep command or call setReplication api. Users will not see any exception but the command/API can execute fine. This is happened when I tested for the OzoneFileSystem via hadoop fs command way.

  was:
Currently, OzoneFileSystem only implements some common useful FileSystem APIs and most of other API are not supported and inherited from parent class FileSystem by default. However, FileSystem do nothing in some set type method, like setReplication, setOwner. 

{code}
 public void setVerifyChecksum(boolean verifyChecksum) {
    //doesn't do anything
  }

  public void setWriteChecksum(boolean writeChecksum) {
    //doesn't do anything
  }

  public boolean setReplication(Path src, short replication)
    throws IOException {
    return true;
  }

  public void setPermission(Path p, FsPermission permission
      ) throws IOException {
  }

  public void setOwner(Path p, String username, String groupname
      ) throws IOException {
  }

  public void setTimes(Path p, long mtime, long atime
      ) throws IOException {
  }
{code}

This set type functions depend on the sub-filesystem implementation. We need to to throw unsupported exception if sub-filesystem cannot support this. Otherwise, it will make users confused to use hadoop fs -setrep command or call setReplication api. Users will not see any exception but the command can execute fine. This is happened when I tested for the OzoneFileSystem via hadoop fs command way.



> OzoneFileSystem should override unsupported set type FileSystem API
> -------------------------------------------------------------------
>
>                 Key: HDDS-3058
>                 URL: https://issues.apache.org/jira/browse/HDDS-3058
>             Project: Hadoop Distributed Data Store
>          Issue Type: Bug
>          Components: Ozone Filesystem
>    Affects Versions: 0.4.1
>            Reporter: Yiqun Lin
>            Assignee: Yiqun Lin
>            Priority: Major
>
> Currently, OzoneFileSystem only implements some common useful FileSystem APIs and most of other API are not supported and inherited from parent class FileSystem by default. However, FileSystem do nothing in some set type method, like setReplication, setOwner.
> {code:java}
>  public void setVerifyChecksum(boolean verifyChecksum) {
>     //doesn't do anything
>   }
>   public void setWriteChecksum(boolean writeChecksum) {
>     //doesn't do anything
>   }
>   public boolean setReplication(Path src, short replication)
>     throws IOException {
>     return true;
>   }
>   public void setPermission(Path p, FsPermission permission
>       ) throws IOException {
>   }
>   public void setOwner(Path p, String username, String groupname
>       ) throws IOException {
>   }
>   public void setTimes(Path p, long mtime, long atime
>       ) throws IOException {
>   }
> {code}
> This set type functions depend on the sub-filesystem implementation. We need to to throw unsupported exception if sub-filesystem cannot support this. Otherwise, it will make users confused to use hadoop fs -setrep command or call setReplication api. Users will not see any exception but the command/API can execute fine. This is happened when I tested for the OzoneFileSystem via hadoop fs command way.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: ozone-issues-unsubscribe@hadoop.apache.org
For additional commands, e-mail: ozone-issues-help@hadoop.apache.org