Improvements for NativeS3FileSystem
-----------------------------------

                 Key: HADOOP-3912
                 URL: https://issues.apache.org/jira/browse/HADOOP-3912
             Project: Hadoop Core
          Issue Type: Improvement
          Components: fs/s3
            Reporter: Albert Chern


In the process of porting NativeS3FileSystem for use with Hadoop 12, I made the 
following changes and improvements which might be helpful (apologies if I 
should have opened separate issues, but I was lazy):

1. The single byte read() method of NativeS3InputStream incorrectly treats the 
return value of InputStream.read() as the number of bytes read, which is 
actually always 1.

2. It allows people to write files ending with the folder suffix.  I prevented 
this by doing a check in the create() method.

3. Similarly, it allows people to open directories for reading.  I prevented 
this by doing a check in the open() method.

4. If you write a file to a nonexistent directory tree, say /a/b/c/d/file, and 
then you delete/rename that file or one of its parent directories, the whole 
directory tree vanishes.  I fixed this by always creating the parent of a 
deleted/renamed file.

5. Recursive delete(), rename(), and getContentLength() can be sped up 
tremendously by working directly with S3 listings rather than working at the 
FileSystem level.  All sub-files/sub-directories should begin with the parent 
directory name as a prefix.

6. HADOOP-3506 is still relevant.

I don't have patches since I created a new file, but I have attached my source 
if Tom wants to take a look at it.

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

Reply via email to