-
Notifications
You must be signed in to change notification settings - Fork 366
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
base: main
Are you sure you want to change the base?
Conversation
Codecov ReportAttention: Patch coverage is
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
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
df7e6e8
to
be8bc4b
Compare
Based on previous work by Carlos from April 2024. See: #13858 |
5ee84b7
to
cf5a7b5
Compare
Move the gRPC plugin functions out of the `google::cloud::storage_experimental` namespace and remove the `experimental-` prefix from the CMake and Bazel targets. I left shims in place for backwards compatibility. The `AsyncClient` remains in the `storage_experimental` namespace, it is fully functional, but we may change some APIs.
cf5a7b5
to
a60754e
Compare
Here is the summary of changes. You are about to delete 1 region tag.
This comment is generated by snippet-bot.
|
There was a problem hiding this 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") |
There was a problem hiding this comment.
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] |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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?
google-cloud-cpp/google/cloud/storage/doc/storage-grpc.dox
Lines 21 to 24 in a60754e
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 |
There was a problem hiding this comment.
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:
Line 22 in a60754e
### 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 |
There was a problem hiding this comment.
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."
`experimental-storage_grpc` feature, not the `storage` feature. | ||
`storage_grpc` feature, not the `storage` feature. |
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
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}" |
There was a problem hiding this comment.
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( |
There was a problem hiding this comment.
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] |
There was a problem hiding this comment.
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?
google-cloud-cpp/google/cloud/storage/doc/storage-grpc.dox
Lines 21 to 24 in a60754e
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:: |
There was a problem hiding this comment.
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", |
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
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/
This change is