tustvold commented on code in PR #6536:
URL: https://github.com/apache/arrow-rs/pull/6536#discussion_r1799704838
##########
object_store/src/local.rs:
##########
@@ -409,7 +415,23 @@ impl ObjectStore for LocalFileSystem {
_ => Some(Error::UnableToRenameFile { source
}),
},
},
- PutMode::Update(_) => unreachable!(),
+ PutMode::Update(uv) => {
+ let metadata = path.metadata().map_err(|e|
Error::Metadata {
+ source: e.into(),
+ path: path.to_str().unwrap().to_string(),
+ })?;
+ let witness = get_etag(&metadata);
Review Comment:
FWIW S3 is the only object store that doesn't, all the others have supported
this for years, even the S3-compatible ones. That being said AWS are finally
waking up, most recently adding support for PutIfNotExists, but as with adding
strong consistency, they're rather late to the party :sweat_smile:
> I'm inclined to abandon this PR
I think it would require extensive design work to support this properly, and
so this is certainly not something to undertake lightly. Getting atomic
semantics against a filesystem correct is very hard, one of the many reasons
people are slowly moving away from relying on them.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]