jclouds-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrew Gaul (JIRA)" <j...@apache.org>
Subject [jira] [Created] (JCLOUDS-835) filesystem blobstore does not atomically replace objects
Date Tue, 03 Mar 2015 22:37:04 GMT
Andrew Gaul created JCLOUDS-835:
-----------------------------------

             Summary: 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


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)

Mime
View raw message