You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@jclouds.apache.org by "Andrew Gaul (JIRA)" <ji...@apache.org> on 2015/03/03 23:37:04 UTC
[jira] [Created] (JCLOUDS-835) filesystem blobstore does not
atomically replace objects
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)