TR
Add `GCSStore`
TraceMachina/nativelink#1547

Description

Please include a summary of the changes and the related issue. Please also include relevant motivation and context.

Add Google Cloud Storage Store

GCS Store implementation closely mirrors the S3 version but adapts it to the GCS gRPC API and metadata structure. It aligns with S3’s structure and behavior while leveraging GCS-specific features. And it also eliminates manual generating of protobufs

  • S3 manages concurrency using a bounded mpsc::channel and FuturesUnordered. GCS currently processes chunks sequentially in the provided implementation.. GCS lacks native support for concurrent part uploads in a single upload session which can be a performance bottleneck for very large files.
  • GCS sequential resumable uploads are better suited for the cases where data integrity and fault tolerance are more critical than performance and to support concurrency in uploads which may require out of box solution
  • In next iteration, I am going to add tests similar of s3 store

Fixes #659 /claim #659

Type of change

Please delete options that aren’t relevant.

  • New feature (non-breaking change which adds functionality)
  • This change requires a documentation update

How Has This Been Tested?

Please also list any relevant details for your test configuration

Checklist

  • Updated documentation if needed
  • [ TODO] Tests added/amended
  • bazel test //... passes locally
  • PR is contained in a single commit, using git amend see some docs

This change is Reviewable

Claim

Total prize pool $2,500
Total paid $0
Status Pending
Submitted December 16, 2024
Last updated December 16, 2024

Contributors

AM

Ambati Sahithi

@asr2003

100%

Sponsors

TR

TraceMachina

@TraceMachina

$2,500