ikv.tikv-client.2.4.4-scala_2.11-RC1.source-code.metapb.proto Maven / Gradle / Ivy
syntax = "proto3";
package metapb;
import "encryptionpb.proto";
import "gogoproto/gogo.proto";
import "rustproto.proto";
option (gogoproto.marshaler_all) = true;
option (gogoproto.sizer_all) = true;
option (gogoproto.unmarshaler_all) = true;
option (rustproto.lite_runtime_all) = true;
option java_package = "org.tikv.kvproto";
message Cluster {
uint64 id = 1;
// max peer count for a region.
// pd will do the auto-balance if region peer count mismatches.
uint32 max_peer_count = 2;
// more attributes......
}
enum StoreState {
Up = 0;
Offline = 1;
Tombstone = 2;
}
// Case insensitive key/value for replica constraints.
message StoreLabel {
string key = 1;
string value = 2;
}
message Store {
uint64 id = 1;
// Address to handle client requests (kv, cop, etc.)
string address = 2;
StoreState state = 3;
repeated StoreLabel labels = 4;
string version = 5;
// Address to handle peer requests (raft messages from other store).
// Empty means same as address.
string peer_address = 6;
// Status address provides the HTTP service for external components
string status_address = 7;
string git_hash = 8;
// The start timestamp of the current store
int64 start_timestamp = 9;
string deploy_path = 10;
// The last heartbeat timestamp of the store.
int64 last_heartbeat = 11;
// If the store is physically destroyed, which means it can never up again.
bool physically_destroyed = 12;
}
message RegionEpoch {
// Conf change version, auto increment when add or remove peer
uint64 conf_ver = 1;
// Region version, auto increment when split or merge
uint64 version = 2;
}
message Region {
uint64 id = 1;
// Region key range [start_key, end_key).
bytes start_key = 2;
bytes end_key = 3;
RegionEpoch region_epoch = 4;
repeated Peer peers = 5;
// Encryption metadata for start_key and end_key. encryption_meta.iv is IV for start_key.
// IV for end_key is calculated from (encryption_meta.iv + len(start_key)).
// The field is only used by PD and should be ignored otherwise.
// If encryption_meta is empty (i.e. nil), it means start_key and end_key are unencrypted.
encryptionpb.EncryptionMeta encryption_meta = 6;
}
enum PeerRole {
// Voter -> Voter
Voter = 0;
// Learner/None -> Learner
Learner = 1;
// Learner/None -> Voter
IncomingVoter = 2;
// Voter -> Learner
DemotingVoter = 3;
// We forbid Voter -> None, it can introduce unavailability as discussed in
// etcd-io/etcd#7625
// Learner -> None can be apply directly, doesn't need to be stored as
// joint state.
}
message Peer {
uint64 id = 1;
uint64 store_id = 2;
PeerRole role = 3;
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy