Class: Google::Cloud::Bigtable::V2::PartialResultSet
- Inherits:
-
Object
- Object
- Google::Cloud::Bigtable::V2::PartialResultSet
- Extended by:
- Protobuf::MessageExts::ClassMethods
- Includes:
- Protobuf::MessageExts
- Defined in:
- proto_docs/google/bigtable/v2/data.rb
Overview
A partial result set from the streaming query API.
Cloud Bigtable clients buffer partial results received in this message until
a resume_token is received.
The pseudocode below describes how to buffer and parse a stream of
PartialResultSet messages.
Having:
- queue of row results waiting to be returned
queue - extensible buffer of bytes
buffer - a place to keep track of the most recent
resume_tokenfor each PartialResultSetpreceived { if p.reset { ensurequeueis empty ensurebufferis empty } if p.estimated_batch_size != 0 { (optional) ensurebufferis sized to at leastp.estimated_batch_size} ifp.proto_rows_batchis set { appendp.proto_rows_batch.bytestobuffer} if p.batch_checksum is set andbufferis not empty { validate the checksum matches the contents ofbuffer(see comments onbatch_checksum) parsebufferasProtoRowsmessage, clearingbufferadd parsed rows to end ofqueue} if p.resume_token is set { release results inqueuesavep.resume_tokeninresume_token} }
Instance Attribute Summary collapse
-
#batch_checksum ⇒ ::Integer
CRC32C checksum of concatenated
partial_rowsdata for the current batch. -
#estimated_batch_size ⇒ ::Integer
Estimated size of the buffer required to hold the next batch of results.
-
#proto_rows_batch ⇒ ::Google::Cloud::Bigtable::V2::ProtoRowsBatch
Partial rows in serialized ProtoRows format.
-
#reset ⇒ ::Boolean
If
true, any data buffered since the last non-emptyresume_tokenmust be discarded before the other parts of this message, if any, are handled. -
#resume_token ⇒ ::String
An opaque token sent by the server to allow query resumption and signal that the buffered values constructed from received
partial_rowscan be yielded to the caller.
Instance Attribute Details
#batch_checksum ⇒ ::Integer
Returns CRC32C checksum of concatenated partial_rows data for the current batch.
When present, the buffered data from partial_rows forms a complete
parseable message of the appropriate type.
The client should mark the end of a parseable message and prepare to
receive a new one starting from the next PartialResultSet message.
Clients must verify the checksum of the serialized batch before yielding it
to the caller.
This does NOT mean the values can be yielded to the callers since a
resume_token is required to safely do so.
If resume_token is non-empty and any data has been received since the
last one, this field is guaranteed to be non-empty. In other words, clients
may assume that a batch will never cross a resume_token boundary.
970 971 972 973 |
# File 'proto_docs/google/bigtable/v2/data.rb', line 970 class PartialResultSet include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end |
#estimated_batch_size ⇒ ::Integer
Returns Estimated size of the buffer required to hold the next batch of results.
This value will be sent with the first partial_rows of a batch. That is,
on the first partial_rows received in a stream, on the first message
after a batch_checksum message, and any time reset is true.
The client can use this estimate to allocate a buffer for the next batch of results. This helps minimize the number of allocations required, though the buffer size may still need to be increased if the estimate is too low.
970 971 972 973 |
# File 'proto_docs/google/bigtable/v2/data.rb', line 970 class PartialResultSet include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end |
#proto_rows_batch ⇒ ::Google::Cloud::Bigtable::V2::ProtoRowsBatch
Returns Partial rows in serialized ProtoRows format.
970 971 972 973 |
# File 'proto_docs/google/bigtable/v2/data.rb', line 970 class PartialResultSet include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end |
#reset ⇒ ::Boolean
Returns If true, any data buffered since the last non-empty resume_token must
be discarded before the other parts of this message, if any, are handled.
970 971 972 973 |
# File 'proto_docs/google/bigtable/v2/data.rb', line 970 class PartialResultSet include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end |
#resume_token ⇒ ::String
Returns An opaque token sent by the server to allow query resumption and signal
that the buffered values constructed from received partial_rows can be
yielded to the caller. Clients can provide this token in a subsequent
request to resume the result stream from the current point.
When resume_token is non-empty, the buffered values received from
partial_rows since the last non-empty resume_token can be yielded to
the callers, provided that the client keeps the value of resume_token and
uses it on subsequent retries.
A resume_token may be sent without information in partial_rows to
checkpoint the progress of a sparse query. Any previous partial_rows data
should still be yielded in this case, and the new resume_token should be
saved for future retries as normal.
A resume_token will only be sent on a boundary where there is either no
ongoing result batch, or batch_checksum is also populated.
The server will also send a sentinel resume_token when last batch of
partial_rows is sent. If the client retries the ExecuteQueryRequest with
the sentinel resume_token, the server will emit it again without any
data in partial_rows, then return OK.
970 971 972 973 |
# File 'proto_docs/google/bigtable/v2/data.rb', line 970 class PartialResultSet include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end |