Skip to content
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

Implement S3 snapshot manager #4109

Open
generall opened this issue Apr 24, 2024 · 11 comments
Open

Implement S3 snapshot manager #4109

generall opened this issue Apr 24, 2024 · 11 comments

Comments

@generall
Copy link
Member

Is your feature request related to a problem? Please describe.

Continuation of the issue #3324

In previous iterations we decomposed Snapshot manager into multiple implementations, depending of the storage backend.

impl SnapshotStorageS3 {

But SnapshotStorageS3 is currently not implemented and not used.

Describe the solution you'd like

  • Implement missing functions in SnapshotStorageS3
  • Alter the settings, to allow explicitly select between local FS and S3
    Example:
storage:

  # Where to store snapshots
  snapshots_path: ./snapshots
  
  s3_config: 
    bucket: "s3://hello-world"
  
  snapshots_storage: "s3" | "local" # "local" - default

Describe alternatives you've considered

Additional context

There are some notable previous attempts which might be helpful - #3430

@generall
Copy link
Member Author

/bounty $200

Copy link

algora-pbc bot commented Apr 24, 2024

## 💎 $200 bounty • Qdrant

### Steps to solve:
1. Start working: Comment /attempt #4109 with your implementation plan
2. Submit work: Create a pull request including /claim #4109 in the PR body to claim the bounty
3. Receive payment: 100% of the bounty is received 2-5 days post-reward. Make sure you are eligible for payouts

### Additional opportunities:
- 🔴 Livestream on Algora TV while solving this bounty & earn $200 upon merge! Comment /livestream once live

Thank you for contributing to qdrant/qdrant!

Add a bountyShare on socials

Attempt Started (GMT+0) Solution
🔴 @varshith257 Apr 25, 2024, 8:18:54 PM WIP
🟢 @kemkemG0 Apr 29, 2024, 10:07:24 PM #4150
🔴 @kid-116 Apr 30, 2024, 7:26:40 PM WIP
🟢 @abhishek818 May 1, 2024, 4:01:36 AM WIP

@varshith257
Copy link

varshith257 commented Apr 25, 2024

@generall I would like to solve this issue with your guidance though I am new to this repo :)
/attempt #4109

@varshith257
Copy link

What are the expected functions to fully implement SnapshotStorageS3?

@generall
Copy link
Member Author

impl SnapshotStorageS3 {
    async fn delete_snapshot(&self, _snapshot_path: &Path) -> CollectionResult<bool> {
        unimplemented!()
    }

    async fn list_snapshots(
        &self,
        _directory: &Path,
    ) -> CollectionResult<Vec<SnapshotDescription>> {
        unimplemented!()
    }

    async fn store_file(
        &self,
        _source_path: &Path,
        _target_path: &Path,
    ) -> CollectionResult<SnapshotDescription> {
        unimplemented!()
    }

    async fn get_stored_file(
        &self,
        _storage_path: &Path,
        _local_path: &Path,
    ) -> CollectionResult<()> {
        unimplemented!()
    }
}

@kemkemG0
Copy link
Contributor

kemkemG0 commented Apr 29, 2024

Let me give it a shot as well : )

/attempt #4109

@varshith257
Copy link

varshith257 commented Apr 30, 2024

@kemkemG0 I am almost done with it. Can you please look at another issue rather waste of efforts? :)

@kid-116
Copy link

kid-116 commented Apr 30, 2024

/attempt #4109

abhishek818 added a commit to abhishek818/qdrant that referenced this issue May 1, 2024
@abhishek818
Copy link
Contributor

abhishek818 commented May 1, 2024

/attempt #4109

Algora profile Completed bounties Tech Active attempts Options
@abhishek818    1 Qdrant bounty
+ 2 bounties from 2 projects
JavaScript, TypeScript
Cancel attempt

Copy link

algora-pbc bot commented May 1, 2024

💡 @kemkemG0 submitted a pull request that claims the bounty. You can visit your bounty board to reward.

Copy link

algora-pbc bot commented May 10, 2024

🎉🎈 @kemkemG0 has been awarded $200! 🎈🎊

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants