-
Notifications
You must be signed in to change notification settings - Fork 17
Integrate S3 Storage Backend #919
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Codecov Report❌ Patch coverage is @@ Coverage Diff @@
## main #919 +/- ##
==========================================
+ Coverage 95.35% 95.41% +0.05%
==========================================
Files 167 175 +8
Lines 10042 11083 +1041
==========================================
+ Hits 9576 10575 +999
- Misses 466 508 +42
... and 2 files with indirect coverage changes 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This pull request integrates S3 storage backend support into ReductStore, enabling cloud-native deployments with remote object storage. The implementation adds a comprehensive storage abstraction layer that allows seamless switching between local filesystem and S3-compatible storage backends.
Key changes include:
- Addition of a new storage backend abstraction with filesystem and S3 implementations
- Implementation of a local cache system for S3 backend to optimize performance
- Configuration support for S3 credentials, endpoints, and cache management
- Migration from
usize
tou64
for content sizes to handle larger files
Reviewed Changes
Copilot reviewed 37 out of 38 changed files in this pull request and generated 7 comments.
Show a summary per file
File | Description |
---|---|
reductstore/src/backend/ | New storage backend abstraction with filesystem and S3 implementations |
reductstore/src/cfg/remote_storage.rs | Configuration parsing for S3 backend settings |
reductstore/src/core/file_cache.rs | Enhanced file cache to work with storage backends |
reductstore/src/storage/ | Updated storage layer to use new backend abstraction |
reductstore/src/api/ | Updated content size types from usize to u64 |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
Closes #906
Please check if the PR fulfills these requirements
What kind of change does this PR introduce?
Feature
What was changed?
What change?
This pull request integrates an S3 storage backend into ReductStore. With this change, users are able to configure ReductStore to use Amazon S3 (or S3-compatible) object storage as a backend for storing and retrieving data. The update includes:
This change enables ReductStore to scale storage beyond local disks, making it suitable for cloud-native deployments and large-scale data retention.
Related issues
#906
Does this PR introduce a breaking change?
No
Other information: