Skip to content

Commit

Permalink
Remove CloudBlobAccess
Browse files Browse the repository at this point in the history
I've noticed that a significant amount of time, both on my end and on
our users' end, is wasted on making CloudBlobAccess work well. We need
to be realistic here: there is no way to make CloudBlobAccess work well.

Even though S3 buckets initially seem like a good match for storing CAS
objects, their implementations are not powerful enough to make things
work reliably. They don't provide the right consistency. Making them
behave like an LRU cache is also expensive/inefficient. On top of that,
there is no way to efficiently implement FindMissingBlobs(), which is
almost certainly a requirement for having an efficient build cluster.

Note that I am not against having a storage backend that uses cloud
buckets. It's just that plainly mapping the CAS/AC key space on top of
an S3 bucket is a bad idea. Using buckets as part of a more complex
scheme (e.g., a LocalBlobAccess BlockList that can flush historical data
into S3) may well be worth it.

To phrase it differently: I am removing CloudBlobAccess, because my
observation is that it causes us to work towards a local maximum, as
opposed to aiming for a global maximum.
  • Loading branch information
EdSchouten committed Sep 15, 2020
1 parent 89343bc commit 0efcb2a
Show file tree
Hide file tree
Showing 9 changed files with 24 additions and 537 deletions.
48 changes: 0 additions & 48 deletions pkg/blobstore/cloud/BUILD.bazel

This file was deleted.

14 changes: 0 additions & 14 deletions pkg/blobstore/cloud/before_copy_func.go

This file was deleted.

122 changes: 0 additions & 122 deletions pkg/blobstore/cloud/cloud_blob_access.go

This file was deleted.

108 changes: 0 additions & 108 deletions pkg/blobstore/cloud/cloud_blob_access_test.go

This file was deleted.

27 changes: 0 additions & 27 deletions pkg/blobstore/cloud/s3_copy_mutator.go

This file was deleted.

41 changes: 0 additions & 41 deletions pkg/blobstore/cloud/s3_copy_mutator_test.go

This file was deleted.

11 changes: 0 additions & 11 deletions pkg/blobstore/configuration/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ go_library(
visibility = ["//visibility:public"],
deps = [
"//pkg/blobstore:go_default_library",
"//pkg/blobstore/cloud:go_default_library",
"//pkg/blobstore/completenesschecking:go_default_library",
"//pkg/blobstore/grpcclients:go_default_library",
"//pkg/blobstore/local:go_default_library",
Expand All @@ -36,21 +35,11 @@ go_library(
"//pkg/proto/configuration/blobstore:go_default_library",
"//pkg/util:go_default_library",
"@com_github_aws_aws_sdk_go//service/s3:go_default_library",
"@com_github_azure_azure_storage_blob_go//azblob:go_default_library",
"@com_github_go_redis_redis_v8//:go_default_library",
"@com_github_go_redis_redis_v8//redisext:go_default_library",
"@com_github_golang_protobuf//ptypes:go_default_library_gen",
"@com_github_google_uuid//:go_default_library",
"@com_google_cloud_go_storage//:go_default_library",
"@dev_gocloud//blob:go_default_library",
"@dev_gocloud//blob/azureblob:go_default_library",
"@dev_gocloud//blob/fileblob:go_default_library",
"@dev_gocloud//blob/gcsblob:go_default_library",
"@dev_gocloud//blob/memblob:go_default_library",
"@dev_gocloud//blob/s3blob:go_default_library",
"@dev_gocloud//gcp:go_default_library",
"@org_golang_google_grpc//codes:go_default_library",
"@org_golang_google_grpc//status:go_default_library",
"@org_golang_x_oauth2//google:go_default_library",
],
)

0 comments on commit 0efcb2a

Please sign in to comment.