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

Steve Loughran updated HADOOP-9565:
-----------------------------------
    Attachment: HADOOP-9565-001.patch

This is the -001 patch, which defines a new class, {{abstract class 
ObjectStoreFileSystem extends FileSystem }}, which is a marker interface. It 
allows the FS Semantics to be queried, and requirements placed on an FS & raise 
an IOE if they aren't met. semantics include: consistency (create, delete, 
list, update), atomicity (create, delete, rename...) and whether flush() does 
anything.

This patch is just the class and tests, without any update to the FS 
specification doc, and without reparenting the in-hadoop-codebase object 
stores, which for swift:// and //s3? come with nearly no guarantees.

# Swift offers create consistency
# s3 create consistency varies a bit by region though.
# Azure does offer a consistent mode, so you can swap hdfs out for it.
# Netflix S3mper and AWS equivalent does improve s3 consistency, especially 
metadata consistency

I don't expect apps to adjust their behaviour based on the guarantees, but 
think some code could/should reject operations if the dest isn't suitable for 
their actions (e.g. speculative operations committed  by rename() require 
atomic rename operations)

> Add a Blobstore interface to add to blobstore FileSystems
> ---------------------------------------------------------
>
>                 Key: HADOOP-9565
>                 URL: https://issues.apache.org/jira/browse/HADOOP-9565
>             Project: Hadoop Common
>          Issue Type: Improvement
>          Components: fs
>    Affects Versions: 2.0.4-alpha
>            Reporter: Steve Loughran
>            Assignee: Steve Loughran
>            Priority: Minor
>         Attachments: HADOOP-9565-001.patch
>
>
> We can make the fact that some {{FileSystem}} implementations are really 
> blobstores, with different atomicity and consistency guarantees, by adding a 
> {{Blobstore}} interface to add to them. 
> This could also be a place to add a {{Copy(Path,Path)}} method, assuming that 
> all blobstores implement at server-side copy operation as a substitute for 
> rename.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to