Get desktop application:
View/edit binary Protocol Buffers messages
(message has no fields)
Auto-generated by catalog manager if not specified. Only makes sense for colocated tables. Note: proto3 v3.15 includes an "optional" keyword as a syntactic sugar for this oneof wrapper.
Actual for index only.
Used during a table rewrite operation to explicitly store the PG table oid.
Used during a table rewrite operation to store the relfilenode OID that maps to the old DocDB table.
Set to true when the table is being re-written as part of a TRUNCATE operation.
(message has no fields)
Really XClusterNamespaceInfoPB.XClusterRole.
The table to scan. If unset, scan all tables
If set, only read the locks associated with this txn_id and ignore the fields min_txn_age_ms and max_num_txns.
Return lock statuses of transactions with age >= 'min_txn_age_ms'
Limit number of old transactions whose lock info is retrieved.
Limit number of locks returned per transaction at each tablet
Map of transactions keyed by the host node uuid.
(message has no fields)
The ordering of the indexes' results here is expected to be the same as the ordering in the corresponding request PB (PgGetIndexBackfillProgressRequestPB).
Allows a hidden table to be opened. Hidden table is a dropped table retained in DocDB for PITR, CLONE, AS-OF.
deprecated, use replication_info
deprecated, use replication_info
size is 0 for colocated tables
Number of YSQL backends (across all tservers) that have not reached the requested catalog version. If the field is -1, the counting is in-progress.
The number of values to fetch. If the cache method is connection, this quantity of values will be returned to the connection. If the cache method is server, this quantity will be retrieved from the master server when it is exhausted, and only one value will be returned to the connection.
True if we only want to return the size of the catalog version map from tserver.
If > 0, we ask for the catalog version of the given database from the tserver. If == 0, we ask for the catalog version map of all databases from the tserver.
Populating the field is optional. When populated, the cancel request is sent to the specified status tablet alone. If not, the request is forwarded to all tablet servers and is thereafter broadcast to all status tablets hosted by the tablet server.
flush_and_compaction_wait_states and raft_log_appender_wait_states are included in tserver_wait_states
Set for both session and txn level locks.
Acquire lock in session level or transaction level.
Only set on txn level locks.
Only session advisory locks can be explicitly released. Transaction level locks are released automatically once txn finishes.
Cannot use TableLockType enum due to proto2/3 compatibility issues.
We are only interested in messages associated with ysql_catalog_version + 1 and beyond. For example, if ysql_catalog_version == x, we will fetch messages x + 1, x + 2, ... x + k stored in tserver messages queue (with no holes), where k is num_catalog_versions. This represents the case where PG backend's local catalog version is x and the shared memory catalog version is x + k. Those messages of catalog version y (y <= x) in the tserver message queue will be skipped for this request.
Each entry is a list of messages associated with a catalog version. If the request cannot be fulfilled, entries will be empty. This only happens when the requested sequence does not exist in the tserver's message queue.
RaftConfig remote bootstrap RPC calls.
Establish a remote bootstrap session.
permanent_uuid of the requesting peer.
tablet_id of the tablet the requester desires to bootstrap from.
connection info of the tablet leader peer for the corresponding tablet_id
Opaque session id assigned by the server. No guarantees are made as to the format of the session id.
Maximum session idle timeout between requests. Learners will have to start over again if they reach this timeout. A value of 0 means there is no timeout.
Active superblock at the time of the request.
Identifiers for the WAL segments available for download. Each WAL segment is keyed by its sequence number.
Sequence number of first WAL segment available for download.
A snapshot of the committed Consensus state at the time that the remote bootstrap session was started.
If the tablet has a retryable requests file flushed to disk.
Establish a remote snapshot transfer session.
permanent_uuid of the requesting peer.
tablet_id of the tablet the requester desires to bootstrap from.
Opaque session id assigned by the server. No guarantees are made as to the format of the session id.
Maximum session idle timeout between requests. Learners will have to start over again if they reach this timeout. A value of 0 means there is no timeout.
Active superblock at the time of the request.
Check whether the specified session is active.
Valid Session ID returned by a BeginRemoteBootstrapSession() RPC call.
Set keepalive to true to reset the session timeout timer.
Whether the given session id represents an active remote bootstrap session.
Fetch data (blocks, logs) from the server.
Valid Session ID returned by a BeginRemoteBootstrapSession() RPC call.
The server will use this ID to determine the key and type of data that was requested.
Offset into data to start reading from. If not specified, the server will send the data from offset 0.
Maximum length of the chunk of data to return. If max_length is not specified, or if the server's max is less than the requested max, the server will use its own max.
The server will automatically release the resources (i.e. close file, free read buffers) for a given data resource after the last byte is read. So, per-resource, chunks are optimized to be fetched in-order.
End a remote bootstrap session, allow server to release resources.
Set to true if bootstrap is successful.
Client-provided error message. The server will log this error so that an admin can identify when bad things are happening with remote bootstrap.
True if we should not remove session on this request, and it will be removed by upcoming RemoveRemoteBootstrapSession.
(message has no fields)
Register Log Anchor on the leader. RBS source calls this function on the tablet leader while beginning the RemoteBootstrapSession
information on the owner requesting this anchor. can be something suffixed with the session id of the ongoing RemoteBootstrapSession. Used to map the incoming requests with the LogAnchors maintained.
tablet_id of the tablet the requester desires to bootstrap from.
The 'index' field of op_id should be set to the log index where the anchor needs to be registered at. The 'term' field of op_id is ignored.
Indicates whether the rbs dest was able to suucessfully fetch all the data from the source.
(message has no fields)
Updates the Log Anchor on the tablet leader. RBS source calls the function whenever the LogAnchor is being updated locally.
RemoteBootstrapSession session_id that was used earlier to initiate a RemoteBootstrapAnchor request.
The 'index' field of op_id should be set to the log index where the anchor needs to be updated to. The 'term' field of op_id is ignored.
Indicates whether the rbs dest was able to suucessfully fetch all the data from the source.
(message has no fields)
Unregisters the Log Anchor on the leader, called by RBS source.
RemoteBootstrapSession session_id that was used earlier to initiate a RemoteBootstrapAnchor request.
(message has no fields)
Request to refresh the Log Anchor Session, called by RBS source.
RemoteBootstrapSession session_id that was used earlier to initiate a RemoteBootstrapAnchor request.
Indicates whether the rbs dest was able to suucessfully fetch all the data from the source. This state is used to determine the amount by which the session's expiration time should be bumped up on the leader peer.
(message has no fields)
RBS source asks the leader to change the role of the new peer post bootstrap.
RemoteBootstrapSession session_id that was used earlier to initiate a RemoteBootstrapAnchor request.
peer uuid of the new peer being bootstrapped.
(message has no fields)
Create a new, empty tablet with the specified parameters. Only used for brand-new tablets, not for "moves".
A create tablet request.
UUID of server this request is addressed to.
DEPRECATED.
DEPRECATED.
The partition of the tablet.
The partition schema of the table which the tablet belongs to.
Initial consensus configuration for the tablet.
For index table: information about this index.
True if the tablet is colocated.
In case the table was rewritten, explicitly store the TableId containing the PG table OID (as the table's TableId no longer matches).
If set to true, retention barriers will be set on the tablet.
CDC SDK Create dynamic table context. The initial safe_op_id for a tablet of a dynamically added table.
Prepare a transasction tablet for deletion. This waits for all relevant intents to be applied and cleaned up.
UUID of server this request is addressed to.
Delete a tablet replica.
A delete tablet request.
UUID of server this request is addressed to.
Reason the tablet is being deleted (for logging purposes)
Must be one of TABLET_DATA_DELETED (for table deletes) or TABLET_DATA_TOMBSTONED (for replica retirement).
The highest allowed OpId index of the latest known committed config. This optional parameter is here to provide an atomic (compare-and-swap) DeleteTablet operation. If this parameter is specified, the DeleteTablet() operation will succeed only if the committed config has an opid_index that is less than or equal to this value. See also the definition of RaftConfigPB. Note: At the time of this writing, there is a small race between checking the value of the committed config opid index and shutting down the tablet for deletion. See comments in ts_tablet_manager.cc
Hide tablet instead of deleting it.
Tablet server should trigger abort of all transactions it participates in upon shutting down this tablet. Should generally be set to true in the case of a dropped table.
Do not delete tablet data.
Alter a tablet's schema.
GetSafeTime API to get the current safe time.
UUID of server this request is addressed to.
Backfill the index for the specified index tables. Addressed to the indexed table.
UUID of server this request is addressed to.
Indexes on the _same table_ to backfill.
Currently only used for YSQL.
Indexed table ID so we can properly address a colocated table.
If non-empty, this is used to keep track of how far along the backfill has completed, so that it can be resumed. Encoded as the DocKey for the next row to be backfilled.
In case of a partial error, list of indexes that failed.
Returns the number of rows backfilled in the request.
Marks an index table as having completed backfilling.
TODO: rename this to FlushOrCompactTabletsRequestPB
UUID of server this request is addressed to.
Tablets to flush.
Actual operation that we plan to perform.
Whether we want to flush or compact all tablets in the server.
Only flush/compact regular RocksDB, not intents RocksDB.
Performs operation only for the given vector indexes for the specified tablets.
Whether we want to perform operation for all vector indexes for the specified tablets.
(message has no fields)
Perform an upgrade unsing just one connection. This is much slower but does not incur overhead for each database.
required
required
optional
Previously known number of YSQL backends that have not reached the requested catalog version. -1 means unknown.
required
Number of YSQL backends that have not reached the requested catalog version.
Create PG objects (database, tables and indexes) of the clone database.
For test purposes: returns TryAgain error until specified number of calls is done.
UUID of server this request is addressed to.
See TestRetry RPC method description below.
(message has no fields)
A batched set of insert/mutate requests.
TODO(proto3) reserved 2, 3, 9;
When replicating RocksDB write operations through Raft for single-shard transactions, we put a write batch here.
A batch of redis operations.
A batch of QL operations.
A batch of Pgsql operations.
A batch of Pgsql locks.
A hybrid_time obtained by the client from a previous request. TODO crypto sign this and propagate the signature along with the hybrid_time.
Use 2 int64 to represent UUID.
If the entire WriteResponsePB request failed, the error status that caused the failure. This type of error is triggered for cases such as the tablet not being on this server, or the schema not matching. If any error specific to a given row occurs, this error will be recorded in per_row_errors below, even if all rows failed.
A batch of redis responses.
A batch of QL responses.
A batch of QL responses.
The hybrid_time chosen by the server for this write. TODO KUDU-611 propagate hybrid_times with server signature.
Used to report restart whether this operation requires read restart.
Used to report used read time when transaction asked for it.
key causing read restart. Present when restart_read_time is.
The tablet to scan.
Whether data blocks will be cached when read from the files or discarded after use. Disable this to lower cache churn when doing large scans.
TODO: add hybrid_time in future
See ReadHybridTime for explation of next two fields.
Used to report restart whether this operation requires read restart.
Used to report used read time when transaction asked for it.
key causing read restart. Present when restart_read_time is.
A verification request to check if a range of rows in main table is consistent with index table content. We will verify index table rows using the primary table.
If indexes is empty, we will check all indexes If it contains entries, then we will check only the ones provided.
Read time if left empty will be replaced by the earliest safe time to read
A list tablets request
A list tablets response
(message has no fields)
Run full-scan data checksum on a tablet to verify data integrity. TODO: Consider refactoring this as a scan that runs a checksum aggregation function.
Error message, if any.
The (possibly partial) checksum of the tablet data. This checksum is only complete if 'has_more_results' is false.
(message has no fields)
Error message, if any.
Error message, if any.
Returns transaction status at coordinator, i.e. PENDING, ABORTED, COMMITTED etc.
Error message, if any.
For backward compatibility we use multiple repeated fields instead of one field with custom message.
For description of status_hybrid_time see comment in TransactionStatusResult.
Size could be less than status size. In this case appropriates values should be interpreted as invalid hybrid time.
Status containing deadlock info if the transaction was aborted due to deadlock. Else, it is set to Status::OK(). Note: The field might not be present on older versions of YB and hence its existence should be checked before usage by the reader.
Returns the oldest transactions (older than a specified age) from a specified status tablet.
TODO(pglocks): Add term field to the response so that we can filter out responses from stale status tablet leader peers. Refer https://github.com/yugabyte/yugabyte-db/issues/18140 for details.
Error message, if any.
Returns the oldest single shard waiters (older than a specified age) by querying the waiting transaction registry at the Tablet Server.
Error message, if any.
Returns transaction status at participant, i.e. number of replicated batches or whether it was aborted.
Error message, if any.
Status containing deadlock info if the transaction is being aborted due to deadlock.
Error message, if any.
For description of status_hybrid_time see comment in TransactionStatusResult.
Change the status tablet id used for a transaction.
ID of new status tablet that the transaction will be using.
Error message, if any.
If empty, no deadlock was detected. Otherwise, includes reverse ordered list of the deadlock participants detected by the probe recipient. The probe sender should append its own txn to this list before responding to its own probe sender.
deprecated in favor of deadlock field below
If set, it indicates that the blocking transaction/sub-transaction(s) info sent in ProbeTransactionDeadlockRequestPB has been resolved.
Truncate tablet response.
Tablet's status request
Tablet's status response
(message has no fields)
Get this tserver's notion of being ready for handling IO requests across all tablets that it owns.
(message has no fields)
When response has no errors, the tserver is deemed ready as per its tablet manager layer when the number of not running tablets is 0. Or the client can choose to timeout before that. Also returns total tablets under this tablet server.
If true, we only ask for the size of the catalog version map in tserver. Otherwise, we ask for database catalog version info from the tserver.
If set we ask for the catalog version of the given database from the tserver. If not set or has value 0, we ask for the catalog version map of all databases from the tserver.
Error message, if any.
A list master servers request
(message has no fields)
A list master servers response
Returns all lock information requested, based on persisted intents and any requests waiting on a persisted intent. These intents may correspond to explicit or implicit locks.
Note: Either among transactions_by_tablet or transaction_ids should be set. Both the fields shouldn't be set together nor should be left empty together.
Tablets to scan. Limit per tablet results to the specified transaction_ids in TabletTransactionInfoPB when non-empty. If empty and 'max_single_shard_waiter_start_time_us' is left at default, include lock info of all transactions at that tablet.
Limit results to the specified transaction_ids when transactions_by_tablet is empty.
Sets the maximum start time of single shard waiters that should be returned, i.e, all single shard waiters with start time before the specified value will be returned. All tablets listed in 'transactions_by_tablet' would be scanned.
Limit number of locks returned per transaction at each tablet. If the field is set to 0, the result set isn't limited and all locks are returned.
When the field is not populated, the cancel request is broadcast to all the status tablets hosted by the TabletServer.
Error message, if any.
Returns the schema version on the XCluster consumer side that is compatible with the schema provided in the request.
Gets the schema version of the schema that is compatible with the requested schema.
Update Schema version mapping response PB.
Added on Oct 2024 (v2025.1), will not be set for older versions. Value is set in the case of a schema mismatch.
UUID of server this request is addressed to.
Identification for the host we are bootstrapping from.
When importing a snapshot from producer to consumer, the consumer universe actually creates a new snapshot with a separate ID. Thus, when downloading files from producer to consumer, we want to account for the new_snapshot_id generated on the consumer universe.
(message has no fields)
(message has no fields)
Clear metacache entries (tables and tablets) that belong to the provided namespace.
Only Ysql namespace can be cleared from metacache.
(message has no fields)
(message has no fields)
(message has no fields)
The list of SQL statements to execute. Execution will stop at the first error.
(message has no fields)
Error message, if any.
Used as request type in: TabletServerService.AcquireObjectLocks
Used as field type in:
The field is used only on the master side. Master remembers which tserver requested the exclusive lock(s) so that it can issue a cleanup when the tserver looses its lease.
The lease epoch of the requesting tserver.
-------------------------------------------------------------------------------------------------- Advisory lock - Acquire / Release locks. -------------------------------------------------------------------------------------------------- Pg Advisory Lock - (dbid, classid, objid, objsubid).
Used in:
Used in:
Used in:
,Used as response type in: TabletServerAdminService.AlterSchema, TabletServerAdminService.BackfillDone
CDC SDK Create Stream context
Used in:
Only valid if role is not LEADER.
Used in:
,A chunk of data (a slice of a block, file, etc).
Used in:
Offset into the complete data block or file that 'data' starts at.
Actual bytes of data from the data block, starting at 'offset'.
CRC32C of the bytes contained in 'data'.
Full length, in bytes, of the complete data block or file on the server. The number of bytes returned in 'data' can certainly be less than this.
A "union" type that allows the same RPC call to fetch different types of data (data blocks or log files).
Used in:
Indicator whether it's a block or log segment id.
To fetch a log segment.
To fetch a RocksDB file.
To fetch a Snapshot file.
Used in:
Used in:
This is used to export tablet metadata changes to a protobuf file to be reloaded on a new cluster startup to avoid running initdb.
Used in:
Used in:
Used in:
Used in:
Used in:
Used in:
An entry for each tablet.
Used in:
Used in:
Used in:
TODO: Remove the OptionalUint32PB helper message after updating protobuf generator to allow 'optional' in proto3
Used in:
Used in:
,Used in:
proto2 version of the ReplicationSlotLsnType enum from yb/common/common_types.proto
Used in:
,proto2 version of the ReplicationSlotOrderingMode enum from yb/common/common.proto
Used in:
Used in:
,Used in:
Used in:
Used in:
This transaction contains changes to the DocDB schema protobufs.
Use transaction block for DDL operations instead of a separate autonomous DDL transaction. Set to false if ysql_yb_ddl_transaction_block_enabled is false or if this is an online schema change operation.
Used in:
Used in:
Used in:
Used in:
Used in:
Used in:
, , , , , , , , , ,Used in:
Used in:
, , , , ,Cannot use IsolationLevel enum, since we cannot use proto2 enum in proto3 messages. Replace with IsolationLevel after migration to proto3.
See ReadHybridTimePB for information about in_txn_limit_ht.
When set, - Sets the read time locally. - Clamps the read uncertainty window. See the commit desc for more info.
Used in:
Used in:
Used in:
Used in:
Used in:
,Available replica identity modes for use in CDC
Used in:
Entire updated row as new image, only key as old image for DELETE The name DEFAULT is taken from PG, however it is not the default replica identity mode
Both old and new images of the entire row
No old image for any operation
Only the changed columns as new image, no old image except DELETE This is the default replica identity mode in YSQL
Used in:
,This map stores the replica identity for each table in the stream at the time of stream creation. The key for this map is table_oid and the value is replica identity for that table.
proto2 version of the CDCSDKSnapshotOption enum from yb/common/common_types.proto
Used in:
Invalid, should not be used. This is only present here to keep the same enum tags between the proto2 (this) and the proto3 versions.
Client does not wish to consume snapshot.
Client wishes to consume snapshot from the source universe.
Client wishes to export snapshot to be used in other session
Used in:
Used in:
,Used in:
Used in:
Used as request type in: TabletServerService.ReleaseObjectLocks
Used as field type in:
When set, only locks owned by the given subtxn id are released. If unset, releases all locks held by <txn_id>.
The lease epoch of the requesting tserver.
If there is any Acquire request that failed, and may be pending on any of the tservers/master. apply_after should be set to the max of the deadlines used for the acquire requests. This ensures that the release will only be applied after the Acquire, to prevent out of order acquire request from leaking locks.
Used for tracking in-progress DDL unlock requests at the master.
Remote bootstrap-specific errors use this protobuf.
The error code.
The Status object for the error. This will include a textual message that may be more useful to present in log messages, etc, though its error code is less specific.
Used in:
An error which has no more specific error code. The code and message in 'status' may reveal more details. RPCs should avoid returning this, since callers will not be able to easily parse the error.
The specified remote bootstrap session either never existed or has expired.
Unknown tablet.
Unknown data block.
Unknown WAL segment.
Invalid request. Possibly missing parameters.
Error reading or transferring data.
Unknown RocksDB file.
Unable to register/update LogAnchor on the tablet leader peer
Cannot ChangeRole for the new peer on the tablet-leader
Used in:
Enum of the server's Tablet Manager state: currently this is only used for assertions, but this can also be sent to the master.
Indicates that Tablet Manager is initializing.
Indicates that Tablet Manager is running and can create new tablets.
Indicates that tablet manager is shutting down and no new tablets can be created.
Tablet Manager has shutdown.
Used in:
Used in:
, , ,Tablet-server specific errors use this protobuf.
Used in:
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,The error code.
The Status object for the error. This will include a textual message that may be more useful to present in log messages, etc, though its error code is less specific.
Used in:
An error which has no more specific error code. The code and message in 'status' may reveal more details. RPCs should avoid returning this, since callers will not be able to easily parse the error.
The schema provided for a request was not well-formed.
The row data provided for a request was not well-formed.
The mutations or mutation keys provided for a request were not well formed.
The schema provided for a request didn't match the actual schema of the tablet.
The requested tablet_id is not currently hosted on this server.
A request was made against a scanner ID that was either never created or has expired.
An invalid scan was specified -- e.g the values passed for predicates were incorrect sizes.
The provided configuration was not well-formed and/or had a sequence number that was below the current config.
On a create tablet request, signals that the tablet already exists.
If the tablet has a newer schema than the requested one the "alter" request will be rejected with this error.
The tablet is hosted on this server, but not in RUNNING state.
Client requested a snapshot read but the snapshot was invalid.
An invalid scan call sequence ID was specified.
This tserver is not the leader of the consensus configuration.
The destination UUID in the request does not match this server.
The compare-and-swap specified by an atomic RPC operation failed.
This server leader is not ready for the change configuration operation.
This server leader is not ready to step down.
Adding a peer which is already present in the current raft config.
Removing a peer which is not present in the current raft config.
Leader needs to be stepped down before calling change config. This happens if the server we are trying to remove from the config is currently the leader.
The operation is not supported.
This tserver is the leader of the consensus configuration, but it's not ready to serve requests. (That means in fact that the elected leader has not yet commited NoOp request. The client must wait a bit for the end of this replica-operation.)
This follower hasn't heard from the leader for a specified amount of time.
The operation is already in progress. Used for remote bootstrap requests for now.
Tablet server has some tablets pending local bootstraps.
Tablet splitting has been started (after split is completed - tablet stays in this state until it is deleted).
Tablet splitting has not been started on this peer yet.
Tablet splitting disabled for this tablet because TTL file expiration feature enabled.
This tablet's partition is too small to split (e.g. if it only contains 1 hash code).
Used as request type in: TabletServerBackupService.TabletSnapshotOp
Used as field type in:
UUID of server this request is addressed to.
In case of transactional id it is binary representation of snapshot UUID, i.e. 16 bytes. Otherwise it is hexadecimal representation of snapshot UUID, i.e. 32 bytes.
Tablets to snapshot. In case of CREATE_ON_MASTER it contains UUIDs of all tablets of snapshot. Otherwise it contains just one tablet.
Override the snapshot directory. Used in restoring sys catalog to avoid running initdb.
Extra data assigned for this snapshot request, so instance it could contain SysRowEntries.
This is the database oid that needs to be restored partially. Applicable only for tablets of sequences_data table currently.
Metadata of all colocated tables in the case of RESTORE_ON_TABLET rpc.
Number of hours the snapshot needs to be kept around before it is deleted. Set only for CREATE_ON_MASTER for non-pitr use-cases. Set to -1 to retain indefinitely until an explicit delete_snapshot.
Used in:
Replicated at tserver, to create snapshot for a particular tablet.
Replicated at master, while creating snapshot for multiple tablets.
Whole restore operation is finished.
Truncate tablet request.
Used as request type in: TabletServerService.Truncate
Used as field type in:
Used in:
Used in:
Used in:
If errors occurred with particular row operations, then the errors for those operations will be passed back in 'per_row_errors'.
Used in:
The index of the row in the incoming batch.
The error that occurred.
Used in:
Time in ms
Used in: