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

Andrew Gaul resolved JCLOUDS-835.
---------------------------------
       Resolution: Fixed
         Assignee: Andrew Gaul
    Fix Version/s: 2.0.0

> filesystem blobstore does not atomically replace objects
> --------------------------------------------------------
>
>                 Key: JCLOUDS-835
>                 URL: https://issues.apache.org/jira/browse/JCLOUDS-835
>             Project: jclouds
>          Issue Type: Bug
>          Components: jclouds-blobstore
>    Affects Versions: 1.8.1
>            Reporter: Andrew Gaul
>            Assignee: Andrew Gaul
>              Labels: filesystem
>             Fix For: 2.0.0
>
>
> Object stores have atomic replacement of keys, i.e., a mutating operation 
> like write or overwrite should succeed and expose the new object or fail and 
> retain the old object.  The filesystem blobstore does neither of these and 
> also has issues when handling simultaneous writes.  From 
> {{FilesystemStorageStrategyImpl.putBlob}}:
> {code:java}
> try {
>    outputFile.delete();
>    Files.asByteSink(outputFile).writeFrom(his);
>    ...
> } catch (IOException ex) {
>    if (outputFile != null) {
>       if (!outputFile.delete()) {
>          logger.debug("Could not delete %s", outputFile);
>       }
>    }
>    throw ex;
> }
> {code}
> Instead we should write to a temporary file and rename on top of the target 
> object.



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

Reply via email to