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

feat(storage): promote gRPC plugin to GA #14712

Open
wants to merge 13 commits into
base: main
Choose a base branch
from

Conversation

ddelgrosso1
Copy link
Contributor

@ddelgrosso1 ddelgrosso1 commented Sep 17, 2024

This change is Reviewable

@product-auto-label product-auto-label bot added the api: storage Issues related to the Cloud Storage API. label Sep 17, 2024
Copy link

codecov bot commented Sep 17, 2024

Codecov Report

Attention: Patch coverage is 93.75000% with 1 line in your changes missing coverage. Please review.

Project coverage is 93.50%. Comparing base (39a3faf) to head (cf5a7b5).

Files with missing lines Patch % Lines
...gle/cloud/storage/examples/storage_grpc_samples.cc 80.00% 1 Missing ⚠️
Additional details and impacted files
@@           Coverage Diff           @@
##             main   #14712   +/-   ##
=======================================
  Coverage   93.50%   93.50%           
=======================================
  Files        2323     2324    +1     
  Lines      207947   207948    +1     
=======================================
+ Hits       194434   194439    +5     
+ Misses      13513    13509    -4     
Flag Coverage Δ
93.50% <93.75%> (+<0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@ddelgrosso1
Copy link
Contributor Author

ddelgrosso1 commented Sep 19, 2024

Based on previous work by Carlos from April 2024. See: #13858

@ddelgrosso1 ddelgrosso1 force-pushed the grpc-ga-sept-2024 branch 2 times, most recently from 5ee84b7 to cf5a7b5 Compare September 20, 2024 17:48
@ddelgrosso1 ddelgrosso1 marked this pull request as ready for review September 25, 2024 15:39
@ddelgrosso1 ddelgrosso1 requested review from a team as code owners September 25, 2024 15:39
Copy link

snippet-bot bot commented Sep 25, 2024

Here is the summary of changes.

You are about to delete 1 region tag.

This comment is generated by snippet-bot.
If you find problems with this result, please file an issue at:
https://github.com/googleapis/repo-automation-bots/issues.
To update this comment, add snippet-bot:force-run label or use the checkbox below:

  • Refresh this comment

Copy link
Member

@frankyn frankyn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe this is blocked until subset of RPCs are updated to throw unimplemented error?

@@ -38,7 +38,7 @@ set(GOOGLE_CLOUD_CPP_EXPERIMENTAL_LIBRARIES
)

set(GOOGLE_CLOUD_CPP_TRANSITION_LIBRARIES # cmake-format: sort
)
"storage_grpc")
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is the difference between transition libraris to GA libraries list below?

@@ -58,22 +58,11 @@ void GrpcReadWrite(std::string const& bucket_name) {
}
//! [grpc-read-write] [END storage_grpc_quickstart]

//! [grpc-with-dp] [START storage_grpc_quickstart_dp]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This needs to be removed from docs to properly clean it up. I'll send a link offline.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pinged TW about updating the docs.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you want to edit this text too?

1. The default endpoint (`storage.googleapis.com`) works from any hosting
environment (on-prem, GKE, GCE, other cloud providers, etc.). For best
performance on GCE or GKE consider using
`google-c2p:///storage.googleapis.com`.

@@ -174,6 +174,12 @@ the APIs in these libraries are stable, and are ready for production use.

- [Managed Kafka API](/google/cloud/managedkafka/README.md)

### New Libraries
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not in the right place. We should not be editing the release notes for the v2.26.0 release.

If you want to get ahead of the CHANGELOG update, add a Storage section here, similar to the existing KMS section:

### New Libraries

- [Google Cloud Storage](/google/cloud/storage/README.md) - the gRPC plugin is
now GA. The [Using the gRPC plugin][storage-grpc] guide describe this feature
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: s/describe/describes/

Maybe describe some of the benefits of the gRPC plugin to actually entice a customer to adopt the new feature?

The guide says: "When using GCS from Google Compute Engine (GCE) this plugin can enable higher total throughput across large workloads that run on hundreds or thousands of VMs."

Comment on lines -791 to +797
`experimental-storage_grpc` feature, not the `storage` feature.
`storage_grpc` feature, not the `storage` feature.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we can't change the past.

@@ -18,7 +18,7 @@
ALWAYS_RESET_CMAKE_CACHE=NO

# By default compile most features.
ENABLED_FEATURES=__ga_libraries__,__experimental_libraries__,opentelemetry,experimental-storage_grpc
ENABLED_FEATURES=__ga_libraries__,__experimental_libraries__,opentelemetry,storage_grpc
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

s/,storage_grpc//

It is included in __ga_libraries__ now.

@@ -56,7 +56,7 @@ function (add_cmake_quickstart_target feature library target)
PREFIX "${PROJECT_BINARY_DIR}/cmake-${library}-prefix"
SOURCE_DIR
"${PROJECT_SOURCE_DIR}/../../google/cloud/${library}/quickstart"
BINARY_DIR "${PROJECT_BINARY_DIR}/cmake-${library}"
BINARY_DIR "${PROJECT_BINARY_DIR}/cmake-${feature}"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is a good change, thanks. We might be able to consolidate the commands that runs the GCS+gRPC quickstart in cmake-install.sh. But that is something we can look at in a future PR.

@@ -320,7 +320,7 @@ auto MakeAsyncClients(Configuration const& cfg,

auto MakeClient(ClientConfig const& cc, int background_threads) {
if (cc.transport == "GRPC") {
return google::cloud::storage_experimental::DefaultGrpcClient(
return gcs::MakeGrpcClient(
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

comment: I would have made the library code changes in one PR, then the build changes in another PR. All good, though.

@@ -58,22 +58,11 @@ void GrpcReadWrite(std::string const& bucket_name) {
}
//! [grpc-read-write] [END storage_grpc_quickstart]

//! [grpc-with-dp] [START storage_grpc_quickstart_dp]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you want to edit this text too?

1. The default endpoint (`storage.googleapis.com`) works from any hosting
environment (on-prem, GKE, GCE, other cloud providers, etc.). For best
performance on GCE or GKE consider using
`google-c2p:///storage.googleapis.com`.

*/
google::cloud::storage::Client DefaultGrpcClient(Options opts = {});
[[deprecated(
"use ::google::cloud::storage::MakeGrpcClient() instead")]] inline google::
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why the inline? Consider dropping it and defining this function in the source file.

@@ -32,7 +32,7 @@ cc_binary(
"quickstart_grpc.cc",
],
deps = [
"@google_cloud_cpp//:experimental-storage_grpc",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think this will build if we:

cd google/cloud/storage/quickstart
bazel build :quickstart_grpc

Can you try it and confirm? If it doesn't build, we should keep depending on the experimental target and leave a TODO to update to the non-experimental target when the next version of google-cloud-cpp is released and picked up in this repo by renovate-bot.

benefit from GCS+gRPC. Furthermore, this GCS feature is not generally available
in GCP, please talk to your sales rep if you have an interest in using this
feature.
The Google Cloud Storage client library includes an plugin to use gRPC as the
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

s/an plugin/a plugin/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
api: storage Issues related to the Cloud Storage API.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants