apache / apache/arrow-rs-object-store
ObjectStore Soft Delete Support
- Dominant language
- Rust
- Stars
- 322
- Forks
- 212
- Avg merge
- 5d 2h
- Merged PRs (30d)
- 10
Description
**Is your feature request related to a problem or challenge? Please describe what you are trying to do.**
Many object stores support some notion of versioning and/or generations. Additionally some, such as Azure Blob Storage, have a specialized notion of [soft deletion](https://learn.microsoft.com/en-us/azure/storage/blobs/soft-delete-blob-overview).
Full support for generations is likely out of scope not least because:
* It is unclear how to support versioning for `LocalFileSystem` whilst preserving atomicity
* The stores are not very consistent in how upserts/deletes interact with versions
* I lack a motivating use-case to guide the API design
**Describe the solution you'd like**
I would like a new method
```
/// Restore a previously deleted object if possible
///
/// Returns
/// - Error::AlreadyExists if the object is not deleted
/// - Error::NotFound if no soft deleted version can be restored
fn restore(&self, path: &Path) -> Result<()> {
Err(Error::NotImplemented)
}
```
**Describe alternatives you've considered**
We could not do this
**Additional context**
Contributor guide
Research direction
Start by reviewing the object-store API and its implementations, especially LocalFileSystem, against the proposed restore(path) contract. Define how soft-deleted objects are detected and restored across supported stores, including the stated AlreadyExists and NotFound outcomes; done means the API behavior and implementation scope are agreed and covered appropriately.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- backend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100