@@ -251,10 +251,10 @@ service Bigtable {
251251 "table_name,row_key,rules,app_profile_id" ;
252252 }
253253
254- // NOTE: This API is intended to be used by Apache Beam BigtableIO.
255254 // Returns the current list of partitions that make up the table's
256255 // change stream. The union of partitions will cover the entire keyspace.
257256 // Partitions can be read with `ReadChangeStream`.
257+ // NOTE: This API is only intended to be used by Apache Beam BigtableIO.
258258 rpc GenerateInitialChangeStreamPartitions (
259259 GenerateInitialChangeStreamPartitionsRequest )
260260 returns (stream GenerateInitialChangeStreamPartitionsResponse ) {
@@ -266,10 +266,10 @@ service Bigtable {
266266 option (google.api.method_signature ) = "table_name,app_profile_id" ;
267267 }
268268
269- // NOTE: This API is intended to be used by Apache Beam BigtableIO.
270269 // Reads changes from a table's change stream. Changes will
271270 // reflect both user-initiated mutations and mutations that are caused by
272271 // garbage collection.
272+ // NOTE: This API is only intended to be used by Apache Beam BigtableIO.
273273 rpc ReadChangeStream (ReadChangeStreamRequest )
274274 returns (stream ReadChangeStreamResponse ) {
275275 option (google.api.http ) = {
@@ -478,26 +478,11 @@ message ReadRowsResponse {
478478 // key, allowing the client to skip that work on a retry.
479479 bytes last_scanned_row_key = 2 ;
480480
481- //
482- // If requested, provide enhanced query performance statistics. The semantics
483- // dictate:
484- // * request_stats is empty on every (streamed) response, except
485- // * request_stats has non-empty information after all chunks have been
486- // streamed, where the ReadRowsResponse message only contains
487- // request_stats.
488- // * For example, if a read request would have returned an empty
489- // response instead a single ReadRowsResponse is streamed with empty
490- // chunks and request_stats filled.
491- //
492- // Visually, response messages will stream as follows:
493- // ... -> {chunks: [...]} -> {chunks: [], request_stats: {...}}
494- // \______________________/ \________________________________/
495- // Primary response Trailer of RequestStats info
496- //
497- // Or if the read did not return any values:
498- // {chunks: [], request_stats: {...}}
499- // \________________________________/
500- // Trailer of RequestStats info
481+ // If requested, return enhanced query performance statistics. The field
482+ // request_stats is empty in a streamed response unless the ReadRowsResponse
483+ // message contains request_stats in the last message of the stream. Always
484+ // returned when requested, even when the read request returns an empty
485+ // response.
501486 RequestStats request_stats = 3 ;
502487}
503488
@@ -695,7 +680,7 @@ message RateLimitInfo {
695680 // target load should be 80. After adjusting, the client should ignore
696681 // `factor` until another `period` has passed.
697682 //
698- // The client can measure its load using any unit that's comparable over time
683+ // The client can measure its load using any unit that's comparable over time.
699684 // For example, QPS can be used as long as each request involves a similar
700685 // amount of work.
701686 double factor = 2 ;
@@ -819,7 +804,8 @@ message ReadModifyWriteRowRequest {
819804
820805 // Required. Rules specifying how the specified row's contents are to be
821806 // transformed into writes. Entries are applied in order, meaning that earlier
822- // rules will affect the results of later ones.
807+ // rules will affect the results of later ones. At least one entry must be
808+ // specified, and there can be at most 100000 rules.
823809 repeated ReadModifyWriteRule rules = 3
824810 [(google.api.field_behavior ) = REQUIRED ];
825811}
@@ -892,10 +878,10 @@ message ReadChangeStreamRequest {
892878 // the position. Tokens are delivered on the stream as part of `Heartbeat`
893879 // and `CloseStream` messages.
894880 //
895- // If a single token is provided, the token’ s partition must exactly match
896- // the request’ s partition. If multiple tokens are provided, as in the case
881+ // If a single token is provided, the token' s partition must exactly match
882+ // the request' s partition. If multiple tokens are provided, as in the case
897883 // of a partition merge, the union of the token partitions must exactly
898- // cover the request’ s partition. Otherwise, INVALID_ARGUMENT will be
884+ // cover the request' s partition. Otherwise, INVALID_ARGUMENT will be
899885 // returned.
900886 StreamContinuationTokens continuation_tokens = 6 ;
901887 }
@@ -1003,8 +989,8 @@ message ReadChangeStreamResponse {
1003989 // An estimate of the commit timestamp that is usually lower than or equal
1004990 // to any timestamp for a record that will be delivered in the future on the
1005991 // stream. It is possible that, under particular circumstances that a future
1006- // record has a timestamp is is lower than a previously seen timestamp. For
1007- // an example usage see
992+ // record has a timestamp that is lower than a previously seen timestamp.
993+ // For an example usage see
1008994 // https://beam.apache.org/documentation/basics/#watermarks
1009995 google.protobuf.Timestamp estimated_low_watermark = 10 ;
1010996 }
@@ -1019,8 +1005,8 @@ message ReadChangeStreamResponse {
10191005 // An estimate of the commit timestamp that is usually lower than or equal
10201006 // to any timestamp for a record that will be delivered in the future on the
10211007 // stream. It is possible that, under particular circumstances that a future
1022- // record has a timestamp is is lower than a previously seen timestamp. For
1023- // an example usage see
1008+ // record has a timestamp that is lower than a previously seen timestamp.
1009+ // For an example usage see
10241010 // https://beam.apache.org/documentation/basics/#watermarks
10251011 google.protobuf.Timestamp estimated_low_watermark = 2 ;
10261012 }
@@ -1031,17 +1017,19 @@ message ReadChangeStreamResponse {
10311017 // If `continuation_tokens` & `new_partitions` are present, then a change in
10321018 // partitioning requires the client to open a new stream for each token to
10331019 // resume reading. Example:
1034- // [B, D) ends
1035- // |
1036- // v
1037- // new_partitions: [A, C) [C, E)
1038- // continuation_tokens.partitions: [B,C) [C,D)
1039- // ^---^ ^---^
1040- // ^ ^
1041- // | |
1042- // | StreamContinuationToken 2
1043- // |
1044- // StreamContinuationToken 1
1020+ //
1021+ // [B, D) ends
1022+ // |
1023+ // v
1024+ // new_partitions: [A, C) [C, E)
1025+ // continuation_tokens.partitions: [B,C) [C,D)
1026+ // ^---^ ^---^
1027+ // ^ ^
1028+ // | |
1029+ // | StreamContinuationToken 2
1030+ // |
1031+ // StreamContinuationToken 1
1032+ //
10451033 // To read the new partition [A,C), supply the continuation tokens whose
10461034 // ranges cover the new partition, for example ContinuationToken[A,B) &
10471035 // ContinuationToken[B,C).
0 commit comments