Details
-
Sub-task
-
Status: Resolved
-
Major
-
Resolution: Won't Fix
-
3.0.0-beta1
-
None
-
None
Description
Support atomically enforced file creation. Current s3a can do a check in create() and fail if there is something there, but a new entry only gets created at the end of the PUT; during the entire interval between that check and the close() of the stream, there's nothing to stop other callers creating an object.
Proposed: s3afs can do a check + create a 0 byte file at the path; that'd need some putNoOverwrite(DirListingMetadata) call in MetadataStore, followed by a PUT of an 0-byte file to S3. That will increase cost of file creation, though at least with the MD store, the cost of the initial getFileStatus() check is down.