1- // Copyright 2022 Google LLC
1+ // Copyright 2023 Google LLC
22//
33// Licensed under the Apache License, Version 2.0 (the "License");
44// you may not use this file except in compliance with the License.
@@ -227,7 +227,6 @@ service Bigtable {
227227
228228// Request message for Bigtable.ReadRows.
229229message ReadRowsRequest {
230- //
231230 // The desired view into RequestStats that should be returned in the response.
232231 //
233232 // See also: RequestStats message.
@@ -254,8 +253,8 @@ message ReadRowsRequest {
254253 }
255254 ];
256255
257- // This value specifies routing for replication. This API only accepts the
258- // empty value of app_profile_id .
256+ // This value specifies routing for replication. If not specified, the
257+ // "default" application profile will be used .
259258 string app_profile_id = 5 ;
260259
261260 // The row keys and/or ranges to read sequentially. If not specified, reads
@@ -489,6 +488,33 @@ message MutateRowsResponse {
489488
490489 // One or more results for Entries from the batch request.
491490 repeated Entry entries = 1 ;
491+
492+ // Information about how client should limit the rate (QPS). Primirily used by
493+ // supported official Cloud Bigtable clients. If unset, the rate limit info is
494+ // not provided by the server.
495+ optional RateLimitInfo rate_limit_info = 3 ;
496+ }
497+
498+ // Information about how client should adjust the load to Bigtable.
499+ message RateLimitInfo {
500+ // Time that clients should wait before adjusting the target rate again.
501+ // If clients adjust rate too frequently, the impact of the previous
502+ // adjustment may not have been taken into account and may
503+ // over-throttle or under-throttle. If clients adjust rate too slowly, they
504+ // will not be responsive to load changes on server side, and may
505+ // over-throttle or under-throttle.
506+ google.protobuf.Duration period = 1 ;
507+
508+ // If it has been at least one `period` since the last load adjustment, the
509+ // client should multiply the current load by this value to get the new target
510+ // load. For example, if the current load is 100 and `factor` is 0.8, the new
511+ // target load should be 80. After adjusting, the client should ignore
512+ // `factor` until another `period` has passed.
513+ //
514+ // The client can measure its load using any unit that's comparable over time
515+ // For example, QPS can be used as long as each request involves a similar
516+ // amount of work.
517+ double factor = 2 ;
492518}
493519
494520// Request message for Bigtable.CheckAndMutateRow.
0 commit comments