All Downloads are FREE. Search and download functionalities are using the official Maven repository.

ikv.tikv-client.2.4.4-scala_2.11-RC1.source-code.metapb.proto Maven / Gradle / Ivy

There is a newer version: 3.2.3
Show newest version
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