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 Google Cloud Bucket Store #659

Open
steedmicro opened this issue Feb 8, 2024 · 8 comments · May be fixed by #1547
Open

💎 Implement Google Cloud Bucket Store #659

steedmicro opened this issue Feb 8, 2024 · 8 comments · May be fixed by #1547
Assignees

Comments

@steedmicro
Copy link
Contributor

steedmicro commented Feb 8, 2024

We need to implement Google Cloud Bucket Store.
We can refer Amazon S3 Bucket Store code - nativelink-store/src/s3_store.rs as a reference which implements similar logic we are going to implement.
Unit tests and example config files need to be added.

@steedmicro steedmicro self-assigned this Feb 8, 2024
@steedmicro steedmicro changed the title Implement the Google Cloud Bucket Store Implement Google Cloud Bucket Store Feb 8, 2024
@aaronmondal
Copy link
Member

IIRC when @allada and I talked about this a while ago we came to the conclusion that something like this might make sense:

  1. Migrate the current aws sdk to a 1.x version as the one we currently use is outdated
  2. Generalize the S3 store to something like a blobstore, i.e. a wrapper store where we can plug in different highly specialized/tuned backend implementations for AWS, GCP, Azure etc.
  3. Implement the actual GCP store and potentially implement one for Azure as well

One major hurdle I can currently see is that these stores can be tricky to test. Ideally we'll want some sort of short lived buckets for integration tests at some point. Technically I'd have a setup for CubeFS in an ad-hoc K8s cluster available, but while that might be useful for some API tests, that setup most likely can't mirror the actual behavior of AWS, GCP etc with respect to things like HTTP/HTTP2 and other not-so-obvious pitfalls.

@steed924 Consider what i mentioned here as a sort of 'wishful thinking out loud' rather than requirements - the current S3 store is not exactly in optimal shape, so anything in this area will probably be better than the current implementation 😅

@steedmicro
Copy link
Contributor Author

Thanks. I will keep in mind that. +@aaronmondal.

@steedmicro
Copy link
Contributor Author

FYI, while I was working on this issue, I encountered one problem while I was tryig to evaluate nativelink running with S3 bucket.
I was working on Ubuntu VPS and set aws credentials correctly and set environment variables for them also.
Even after I've tried run the command after bazel clean --expunge the result was the same.

Running the nativelink by bazel run nativelink -- $(pwd)/nativelink-config/examples/s3_backend_with_local_fast_cas.json seems to run server correctly.

But when I was going to evaluate the native link running by this command bazel test //... --remote_instance_name=main --remote_cache=grpc://127.0.0.1:50051 --remote_executor=grpc://127.0.0.1:50051 --remote_default_exec_properties=cpu_count=1, it raises errors like this.

It raises an error while it tries to load the first chunk from ActionCache server, which is supported by S3 bucket.

I hope to hear your opinions. @aaronmondal. Thanks.

Capture

@steedmicro
Copy link
Contributor Author

FYI, I've fixed the bug by myself.
The reason was because S3 bucket I was using was on us-east-1 region.
After I've updated the AWS_ENDPOINT_URL and AWS_DEFAULT_REGION environment varibles to us-east-1, it seemed to be working fine.
Thanks.

Copy link

algora-pbc bot commented Dec 13, 2024

💎 $2,500 bounty • TraceMachina

Steps to solve:

  1. Start working: Comment /attempt #659 with your implementation plan
  2. Submit work: Create a pull request including /claim #659 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

Thank you for contributing to TraceMachina/nativelink!

Add a bountyShare on socials

Attempt Started (GMT+0) Solution
🟢 @asr2003 Dec 14, 2024, 3:17:17 AM #1547
🔴 @akhilender-bongirwar Dec 14, 2024, 9:46:58 AM WIP
🟢 @onyedikachi-david Dec 17, 2024, 8:28:29 PM WIP

@aaronmondal aaronmondal changed the title Implement Google Cloud Bucket Store 💎 Implement Google Cloud Bucket Store Dec 13, 2024
@asr2003
Copy link

asr2003 commented Dec 14, 2024

/attempt #659

Algora profile Completed bounties Tech Active attempts Options
@asr2003 9 bounties from 4 projects
Rust, Scala,
Go & more
Cancel attempt

@asr2003 asr2003 linked a pull request Dec 16, 2024 that will close this issue
5 tasks
Copy link

algora-pbc bot commented Dec 16, 2024

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

@onyedikachi-david
Copy link

onyedikachi-david commented Dec 17, 2024

/attempt #659

Algora profile Completed bounties Tech Active attempts Options
@onyedikachi-david 13 bounties from 6 projects
TypeScript, Python,
JavaScript & more
Cancel attempt

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.

4 participants