Get desktop application:
View/edit binary Protocol Buffers messages
GetClusterInfo get the information of this cluster. It does not require the cluster_id in request matchs the id of this cluster.
If service mode is API_SVC_MODE, this field will be set to the registered tso service addresses.
GetMembers get the member list of this cluster. It does not require the cluster_id in request matchs the id of this cluster.
Do NOT return tombstone stores if set to true.
Detailed store report that is only filled up on PD's demand for online unsafe recovery.
Used by online unsafe recovery to request store report. Now it's substituted by reusing recovery_plan field. PD will send a empty recovery plan instead to request store report.
Operations of recovery. After the plan is executed, TiKV should attach the store report in store heartbeat.
Pd can return awaken_regions to let TiKV awaken hibernated regions itself.
Pd can return operations to let TiKV forcely PAUSE | RESUME grpc server.
NodeState is going to mark the state of the store.
Leader Peer sending the heartbeat.
Leader considers that these peers are down.
Pending peers are the peers that the leader can't consider as working followers.
Bytes read/written during this period.
Keys read/written during this period.
Approximate region size.
Actually reported time interval
Approximate number of keys.
Term is the term of raft group.
QueryStats reported write query stats, and there are read query stats in store heartbeat
cpu_usage is the CPU time usage of the leader region since the last heartbeat, which is calculated by cpu_time_delta/heartbeat_reported_interval.
(Serverless) Approximate size of key-value pairs for billing. It's counted on size of user key & value (excluding metadata fields), before compression, and latest versions only.
Notice, Pd only allows handling reported epoch >= current pd's. Leader peer reports region status with RegionHeartbeatRequest to pd regularly, pd will determine whether this region should do ChangePeer or not. E,g, max peer number is 3, region A, first only peer 1 in A. 1. Pd region state -> Peers (1), ConfVer (1). 2. Leader peer 1 reports region state to pd, pd finds the peer number is < 3, so first changes its current region state -> Peers (1, 2), ConfVer (1), and returns ChangePeer Adding 2. 3. Leader does ChangePeer, then reports Peers (1, 2), ConfVer (2), pd updates its state -> Peers (1, 2), ConfVer (2). 4. Leader may report old Peers (1), ConfVer (1) to pd before ConfChange finished, pd stills responses ChangePeer Adding 2, of course, we must guarantee the second ChangePeer can't be applied in TiKV.
Pd can return transfer_leader to let TiKV does leader transfer itself.
ID of the region
Leader of the region at the moment of the corresponding request was made.
PD sends split_region to let TiKV split a region into two regions.
Multiple change peer operations atomically. Note: PD can use both ChangePeer and ChangePeerV2 at the same time (not in the same RegionHeartbeatResponse). Now, PD use ChangePeerV2 in following scenarios: 1. replacing peers 2. demoting voter directly
Whether to include the buckets info within the response.
The region IDs to query.
The region keys to query.
The previous region keys to query.
This array functions as a map corresponding to the region IDs, preserving the order of the input region keys, if they are present.
This array functions as a map corresponding to the previous region IDs, preserving the order of the input previous region keys, if they are present.
RegionID -> RegionResponse
Deprecated: use BatchScanRegions instead.
Use GetRegionResponse as the response of GetRegionByIDRequest. Deprecated: use BatchScanRegionsRequest instead.
no limit when limit <= 0.
end_key is +inf when it is empty.
Keep for backword compatibability.
Extended region info with down/pending peers.
the given ranges must be in order.
limit the total number of regions to scan.
If contain_all_key_range is true, the output must contain all key ranges in the request. If the output does not contain all key ranges, the request is considered failed and returns an error(REGIONS_NOT_CONTAIN_ALL_KEY_RANGE).
the returned regions are flattened into a list, because the given ranges can located in the same range, we do not return duplicated regions then.
We split the region into two, first uses the origin parent region id, and the second uses the new_region_id. We must guarantee that the new_region_id is global unique.
The peer ids for the new split region.
PD will use these region information if it can't find the region. For example, the region is just split and hasn't report to PD yet.
If group is defined, the regions with the same group would be scattered as a whole group. If not defined, the regions would be scattered in a cluster level.
If regions_id is defined, the region_id would be ignored.
Safe point will be set to expire on (PD Server time + TTL), pass in a ttl < 0 to remove target safe point; pass in MAX_INT64 to set a safe point that never expire. This should be set by component that may crash unexpectedly so that it doesn't block cluster garbage collection.
the follower PD will use the start index to locate historical changes that require synchronization.
the leader PD will send the repsonds include changed regions records and the index of the first record.
the buckets informations without stats.
If skip_check is true, the sync will try to write the max_ts without checking whether it's bigger.
suffix sign
max_ts will be included into this response if PD leader think the receiver needs, which it's set when the number of the max suffix bits changes.
Get the minimum timestamp across all keyspace groups from API server TODO: Currently, we need to ask API server to get the minimum timestamp. Once we support service discovery, we can remove it.
Used in:
Awake all regions if abnormal_stores is empty.
Used in:
,Used in:
, ,Used in:
,If changes is empty, it means that to exit joint state.
Used in:
Used in:
Used in:
Pause TiKV grpc server.
Resume TiKV grpc server.
Used in:
Used in:
, ,Used in:
required watch revision is smaller than current compact/min revision.
Used in:
,Used in:
The store ids of the failed stores, TiKV uses it to decide if a peer is alive.
The region ids of the peer which is to be force leader.
Used in:
Used as request type in: PD.GetPrevRegion, PD.GetRegion
Used as response type in: PD.GetPrevRegion, PD.GetRegion, PD.GetRegionByID
Leader considers that these peers are down.
Pending peers are the peers that the leader can't consider as working followers.
buckets isn't nil if GetRegion.* requests set need_buckets.
Used in:
, ,this field 'value' is replaced by the field 'payload'.
Since item value needs to support marshal of different struct types, it should be set to bytes instead of string.
Used in:
end_key is +inf when it is empty.
Used in:
,name is the name of the PD member.
member_id is the unique id of the PD member.
Used in:
,Used in:
,Used in:
The peer has proposed but uncommitted commit merge.
raft applied index
Used in:
Used in:
, , , , ,Used in:
Used in:
Used in:
, , ,Used in:
Used in:
Create empty regions to fill the key range hole.
Update the meta of the regions, including peer lists, epoch and key range.
Tombstone the peers on the store locally.
Issue conf change that demote voters on failed stores to learners on the regions.
Make the peers to be force leaders.
Step is an increasing number to note the round of recovery, It should be filled in the corresponding store report.
Used in:
,Leader considers that these peers are down.
Pending peers are the peers that the leader can't consider as working followers.
buckets isn't nil only when need_buckets is true.
Used in:
Used in:
Bytes read/written during this period.
Keys read/written during this period.
Used in:
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,cluster_id is the ID of the cluster which be sent to.
sender_id is the ID of the sender server, also member ID or etcd ID. sender_id is used in PD internal communication.
caller_id is the ID of the client which sends the request, such as tikv, tidb, cdc, etc.
caller_component is the component of the client which sends the request, such as ddl, optimizer, etc.
Used in:
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,cluster_id is the ID of the cluster which sent the response.
SafePointEvent is for the rpc WatchGCSafePointV2.
Used in:
Used in:
Used in:
Used in:
Generate snapshot duration
Send snapshot duration
|-- waiting --|-- generate --|-- send --| |-----------total duration---------------| Total duration include waiting and executing duration
Size is the transport data size
Used in:
,Used in:
,Used in:
Used in:
, ,Capacity for the store.
Available size for the store.
Total region count in this store.
Current sending snapshot count.
Current receiving snapshot count.
When the store is started (unix timestamp in seconds).
How many region is applying snapshot.
If the store is busy
Actually used space by db
Bytes written for the store during this period.
Keys written for the store during this period.
Bytes read for the store during this period.
Keys read for the store during this period.
Actually reported time interval
Threads' CPU usages in the store
Threads' read disk I/O rates in the store
Threads' write disk I/O rates in the store
Operations' latencies in the store
Hot peer stat in the store
Store query stats
Score that represents the speed of the store, ranges in [1, 100], lower is better.
Damaged regions on the store that need to be removed by PD.
If the apply worker is busy, namely high apply wait duration
Snapshot stats in the store
If the grpc server is paused.
Total memory of the store in bytes.
Used memory of the store in bytes.
Used in:
Used in:
, ,The unix timestamp in seconds of the start of this period.
The unix timestamp in seconds of the end of this period.
Used in:
, , , , , ,Number of suffix bits used for global distinction, PD client will use this to compute a TSO's logical part.
Used in:
,