Documentation ¶
Overview ¶
Package topodata is a generated protocol buffer package.
It is generated from these files:
topodata.proto
It has these top-level messages:
KeyRange TabletAlias Tablet Shard Keyspace ShardReplication ShardReference SrvKeyspace
Index ¶
- Variables
- type KeyRange
- type Keyspace
- type KeyspaceIdType
- type Keyspace_ServedFrom
- type Shard
- func (*Shard) Descriptor() ([]byte, []int)
- func (m *Shard) GetKeyRange() *KeyRange
- func (m *Shard) GetMasterAlias() *TabletAlias
- func (m *Shard) GetServedTypes() []*Shard_ServedType
- func (m *Shard) GetSourceShards() []*Shard_SourceShard
- func (m *Shard) GetTabletControls() []*Shard_TabletControl
- func (*Shard) ProtoMessage()
- func (m *Shard) Reset()
- func (m *Shard) String() string
- type ShardReference
- type ShardReplication
- type ShardReplication_Node
- type Shard_ServedType
- type Shard_SourceShard
- type Shard_TabletControl
- type SrvKeyspace
- type SrvKeyspace_KeyspacePartition
- func (*SrvKeyspace_KeyspacePartition) Descriptor() ([]byte, []int)
- func (m *SrvKeyspace_KeyspacePartition) GetShardReferences() []*ShardReference
- func (*SrvKeyspace_KeyspacePartition) ProtoMessage()
- func (m *SrvKeyspace_KeyspacePartition) Reset()
- func (m *SrvKeyspace_KeyspacePartition) String() string
- type SrvKeyspace_ServedFrom
- type Tablet
- func (*Tablet) Descriptor() ([]byte, []int)
- func (m *Tablet) GetAlias() *TabletAlias
- func (m *Tablet) GetKeyRange() *KeyRange
- func (m *Tablet) GetPortMap() map[string]int32
- func (m *Tablet) GetTags() map[string]string
- func (*Tablet) ProtoMessage()
- func (m *Tablet) Reset()
- func (m *Tablet) String() string
- type TabletAlias
- type TabletType
Constants ¶
This section is empty.
Variables ¶
var KeyspaceIdType_name = map[int32]string{
0: "UNSET",
1: "UINT64",
2: "BYTES",
}
var KeyspaceIdType_value = map[string]int32{
"UNSET": 0,
"UINT64": 1,
"BYTES": 2,
}
var TabletType_name = map[int32]string{
0: "UNKNOWN",
1: "MASTER",
2: "REPLICA",
3: "RDONLY",
4: "SPARE",
5: "EXPERIMENTAL",
6: "BACKUP",
7: "RESTORE",
8: "DRAINED",
}
var TabletType_value = map[string]int32{
"UNKNOWN": 0,
"MASTER": 1,
"REPLICA": 2,
"RDONLY": 3,
"BATCH": 3,
"SPARE": 4,
"EXPERIMENTAL": 5,
"BACKUP": 6,
"RESTORE": 7,
"DRAINED": 8,
}
Functions ¶
This section is empty.
Types ¶
type KeyRange ¶
type KeyRange struct { Start []byte `protobuf:"bytes,1,opt,name=start,proto3" json:"start,omitempty"` End []byte `protobuf:"bytes,2,opt,name=end,proto3" json:"end,omitempty"` }
KeyRange describes a range of sharding keys, when range-based sharding is used.
func (*KeyRange) Descriptor ¶
func (*KeyRange) ProtoMessage ¶
func (*KeyRange) ProtoMessage()
type Keyspace ¶
type Keyspace struct { // name of the column used for sharding // empty if the keyspace is not sharded ShardingColumnName string `protobuf:"bytes,1,opt,name=sharding_column_name,json=shardingColumnName" json:"sharding_column_name,omitempty"` // type of the column used for sharding // UNSET if the keyspace is not sharded ShardingColumnType KeyspaceIdType `` /* 140-byte string literal not displayed */ // ServedFrom will redirect the appropriate traffic to // another keyspace. ServedFroms []*Keyspace_ServedFrom `protobuf:"bytes,4,rep,name=served_froms,json=servedFroms" json:"served_froms,omitempty"` }
A Keyspace contains data about a keyspace.
func (*Keyspace) Descriptor ¶
func (*Keyspace) GetServedFroms ¶
func (m *Keyspace) GetServedFroms() []*Keyspace_ServedFrom
func (*Keyspace) ProtoMessage ¶
func (*Keyspace) ProtoMessage()
type KeyspaceIdType ¶
type KeyspaceIdType int32
KeyspaceIdType describes the type of the sharding key for a range-based sharded keyspace.
const ( // UNSET is the default value, when range-based sharding is not used. KeyspaceIdType_UNSET KeyspaceIdType = 0 // UINT64 is when uint64 value is used. // This is represented as 'unsigned bigint' in mysql KeyspaceIdType_UINT64 KeyspaceIdType = 1 // BYTES is when an array of bytes is used. // This is represented as 'varbinary' in mysql KeyspaceIdType_BYTES KeyspaceIdType = 2 )
func (KeyspaceIdType) EnumDescriptor ¶
func (KeyspaceIdType) EnumDescriptor() ([]byte, []int)
func (KeyspaceIdType) String ¶
func (x KeyspaceIdType) String() string
type Keyspace_ServedFrom ¶
type Keyspace_ServedFrom struct { // the tablet type (key for the map) TabletType TabletType `protobuf:"varint,1,opt,name=tablet_type,json=tabletType,enum=topodata.TabletType" json:"tablet_type,omitempty"` // the cells to limit this to Cells []string `protobuf:"bytes,2,rep,name=cells" json:"cells,omitempty"` // the keyspace name that's serving it Keyspace string `protobuf:"bytes,3,opt,name=keyspace" json:"keyspace,omitempty"` }
ServedFrom indicates a relationship between a TabletType and the keyspace name that's serving it.
func (*Keyspace_ServedFrom) Descriptor ¶
func (*Keyspace_ServedFrom) Descriptor() ([]byte, []int)
func (*Keyspace_ServedFrom) ProtoMessage ¶
func (*Keyspace_ServedFrom) ProtoMessage()
func (*Keyspace_ServedFrom) Reset ¶
func (m *Keyspace_ServedFrom) Reset()
func (*Keyspace_ServedFrom) String ¶
func (m *Keyspace_ServedFrom) String() string
type Shard ¶
type Shard struct { // No lock is necessary to update this field, when for instance // TabletExternallyReparented updates this. However, we lock the // shard for reparenting operations (InitShardMaster, // PlannedReparentShard,EmergencyReparentShard), to guarantee // exclusive operation. MasterAlias *TabletAlias `protobuf:"bytes,1,opt,name=master_alias,json=masterAlias" json:"master_alias,omitempty"` // key_range is the KeyRange for this shard. It can be unset if: // - we are not using range-based sharding in this shard. // - the shard covers the entire keyrange. // This must match the shard name based on our other conventions, but // helpful to have it decomposed here. // Once set at creation time, it is never changed. KeyRange *KeyRange `protobuf:"bytes,2,opt,name=key_range,json=keyRange" json:"key_range,omitempty"` // served_types has at most one entry per TabletType // The keyspace lock is always taken when changing this. ServedTypes []*Shard_ServedType `protobuf:"bytes,3,rep,name=served_types,json=servedTypes" json:"served_types,omitempty"` // SourceShards is the list of shards we're replicating from, // using filtered replication. // The keyspace lock is always taken when changing this. SourceShards []*Shard_SourceShard `protobuf:"bytes,4,rep,name=source_shards,json=sourceShards" json:"source_shards,omitempty"` // Cells is the list of cells that contain tablets for this shard. // No lock is necessary to update this field. Cells []string `protobuf:"bytes,5,rep,name=cells" json:"cells,omitempty"` // tablet_controls has at most one entry per TabletType. // The keyspace lock is always taken when changing this. TabletControls []*Shard_TabletControl `protobuf:"bytes,6,rep,name=tablet_controls,json=tabletControls" json:"tablet_controls,omitempty"` }
A Shard contains data about a subset of the data whithin a keyspace.
func (*Shard) Descriptor ¶
func (*Shard) GetKeyRange ¶
func (*Shard) GetMasterAlias ¶
func (m *Shard) GetMasterAlias() *TabletAlias
func (*Shard) GetServedTypes ¶
func (m *Shard) GetServedTypes() []*Shard_ServedType
func (*Shard) GetSourceShards ¶
func (m *Shard) GetSourceShards() []*Shard_SourceShard
func (*Shard) GetTabletControls ¶
func (m *Shard) GetTabletControls() []*Shard_TabletControl
func (*Shard) ProtoMessage ¶
func (*Shard) ProtoMessage()
type ShardReference ¶
type ShardReference struct { // Copied from Shard. Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` KeyRange *KeyRange `protobuf:"bytes,2,opt,name=key_range,json=keyRange" json:"key_range,omitempty"` }
ShardReference is used as a pointer from a SrvKeyspace to a Shard
func (*ShardReference) Descriptor ¶
func (*ShardReference) Descriptor() ([]byte, []int)
func (*ShardReference) GetKeyRange ¶
func (m *ShardReference) GetKeyRange() *KeyRange
func (*ShardReference) ProtoMessage ¶
func (*ShardReference) ProtoMessage()
func (*ShardReference) Reset ¶
func (m *ShardReference) Reset()
func (*ShardReference) String ¶
func (m *ShardReference) String() string
type ShardReplication ¶
type ShardReplication struct { // Note there can be only one Node in this array // for a given tablet. Nodes []*ShardReplication_Node `protobuf:"bytes,1,rep,name=nodes" json:"nodes,omitempty"` }
ShardReplication describes the MySQL replication relationships whithin a cell.
func (*ShardReplication) Descriptor ¶
func (*ShardReplication) Descriptor() ([]byte, []int)
func (*ShardReplication) GetNodes ¶
func (m *ShardReplication) GetNodes() []*ShardReplication_Node
func (*ShardReplication) ProtoMessage ¶
func (*ShardReplication) ProtoMessage()
func (*ShardReplication) Reset ¶
func (m *ShardReplication) Reset()
func (*ShardReplication) String ¶
func (m *ShardReplication) String() string
type ShardReplication_Node ¶
type ShardReplication_Node struct {
TabletAlias *TabletAlias `protobuf:"bytes,1,opt,name=tablet_alias,json=tabletAlias" json:"tablet_alias,omitempty"`
}
Node describes a tablet instance within the cell
func (*ShardReplication_Node) Descriptor ¶
func (*ShardReplication_Node) Descriptor() ([]byte, []int)
func (*ShardReplication_Node) GetTabletAlias ¶
func (m *ShardReplication_Node) GetTabletAlias() *TabletAlias
func (*ShardReplication_Node) ProtoMessage ¶
func (*ShardReplication_Node) ProtoMessage()
func (*ShardReplication_Node) Reset ¶
func (m *ShardReplication_Node) Reset()
func (*ShardReplication_Node) String ¶
func (m *ShardReplication_Node) String() string
type Shard_ServedType ¶
type Shard_ServedType struct { TabletType TabletType `protobuf:"varint,1,opt,name=tablet_type,json=tabletType,enum=topodata.TabletType" json:"tablet_type,omitempty"` Cells []string `protobuf:"bytes,2,rep,name=cells" json:"cells,omitempty"` }
ServedType is an entry in the served_types
func (*Shard_ServedType) Descriptor ¶
func (*Shard_ServedType) Descriptor() ([]byte, []int)
func (*Shard_ServedType) ProtoMessage ¶
func (*Shard_ServedType) ProtoMessage()
func (*Shard_ServedType) Reset ¶
func (m *Shard_ServedType) Reset()
func (*Shard_ServedType) String ¶
func (m *Shard_ServedType) String() string
type Shard_SourceShard ¶
type Shard_SourceShard struct { // Uid is the unique ID for this SourceShard object. Uid uint32 `protobuf:"varint,1,opt,name=uid" json:"uid,omitempty"` // the source keyspace Keyspace string `protobuf:"bytes,2,opt,name=keyspace" json:"keyspace,omitempty"` // the source shard Shard string `protobuf:"bytes,3,opt,name=shard" json:"shard,omitempty"` // the source shard keyrange KeyRange *KeyRange `protobuf:"bytes,4,opt,name=key_range,json=keyRange" json:"key_range,omitempty"` // the source table list to replicate Tables []string `protobuf:"bytes,5,rep,name=tables" json:"tables,omitempty"` }
SourceShard represents a data source for filtered replication accross shards. When this is used in a destination shard, the master of that shard will run filtered replication.
func (*Shard_SourceShard) Descriptor ¶
func (*Shard_SourceShard) Descriptor() ([]byte, []int)
func (*Shard_SourceShard) GetKeyRange ¶
func (m *Shard_SourceShard) GetKeyRange() *KeyRange
func (*Shard_SourceShard) ProtoMessage ¶
func (*Shard_SourceShard) ProtoMessage()
func (*Shard_SourceShard) Reset ¶
func (m *Shard_SourceShard) Reset()
func (*Shard_SourceShard) String ¶
func (m *Shard_SourceShard) String() string
type Shard_TabletControl ¶
type Shard_TabletControl struct { // which tablet type is affected TabletType TabletType `protobuf:"varint,1,opt,name=tablet_type,json=tabletType,enum=topodata.TabletType" json:"tablet_type,omitempty"` Cells []string `protobuf:"bytes,2,rep,name=cells" json:"cells,omitempty"` // what to do DisableQueryService bool `protobuf:"varint,3,opt,name=disable_query_service,json=disableQueryService" json:"disable_query_service,omitempty"` BlacklistedTables []string `protobuf:"bytes,4,rep,name=blacklisted_tables,json=blacklistedTables" json:"blacklisted_tables,omitempty"` }
TabletControl controls tablet's behavior
func (*Shard_TabletControl) Descriptor ¶
func (*Shard_TabletControl) Descriptor() ([]byte, []int)
func (*Shard_TabletControl) ProtoMessage ¶
func (*Shard_TabletControl) ProtoMessage()
func (*Shard_TabletControl) Reset ¶
func (m *Shard_TabletControl) Reset()
func (*Shard_TabletControl) String ¶
func (m *Shard_TabletControl) String() string
type SrvKeyspace ¶
type SrvKeyspace struct { // The partitions this keyspace is serving, per tablet type. Partitions []*SrvKeyspace_KeyspacePartition `protobuf:"bytes,1,rep,name=partitions" json:"partitions,omitempty"` // copied from Keyspace ShardingColumnName string `protobuf:"bytes,2,opt,name=sharding_column_name,json=shardingColumnName" json:"sharding_column_name,omitempty"` ShardingColumnType KeyspaceIdType `` /* 140-byte string literal not displayed */ ServedFrom []*SrvKeyspace_ServedFrom `protobuf:"bytes,4,rep,name=served_from,json=servedFrom" json:"served_from,omitempty"` }
SrvKeyspace is a rollup node for the keyspace itself.
func (*SrvKeyspace) Descriptor ¶
func (*SrvKeyspace) Descriptor() ([]byte, []int)
func (*SrvKeyspace) GetPartitions ¶
func (m *SrvKeyspace) GetPartitions() []*SrvKeyspace_KeyspacePartition
func (*SrvKeyspace) GetServedFrom ¶
func (m *SrvKeyspace) GetServedFrom() []*SrvKeyspace_ServedFrom
func (*SrvKeyspace) ProtoMessage ¶
func (*SrvKeyspace) ProtoMessage()
func (*SrvKeyspace) Reset ¶
func (m *SrvKeyspace) Reset()
func (*SrvKeyspace) String ¶
func (m *SrvKeyspace) String() string
type SrvKeyspace_KeyspacePartition ¶
type SrvKeyspace_KeyspacePartition struct { // The type this partition applies to. ServedType TabletType `protobuf:"varint,1,opt,name=served_type,json=servedType,enum=topodata.TabletType" json:"served_type,omitempty"` // List of non-overlapping continuous shards sorted by range. ShardReferences []*ShardReference `protobuf:"bytes,2,rep,name=shard_references,json=shardReferences" json:"shard_references,omitempty"` }
func (*SrvKeyspace_KeyspacePartition) Descriptor ¶
func (*SrvKeyspace_KeyspacePartition) Descriptor() ([]byte, []int)
func (*SrvKeyspace_KeyspacePartition) GetShardReferences ¶
func (m *SrvKeyspace_KeyspacePartition) GetShardReferences() []*ShardReference
func (*SrvKeyspace_KeyspacePartition) ProtoMessage ¶
func (*SrvKeyspace_KeyspacePartition) ProtoMessage()
func (*SrvKeyspace_KeyspacePartition) Reset ¶
func (m *SrvKeyspace_KeyspacePartition) Reset()
func (*SrvKeyspace_KeyspacePartition) String ¶
func (m *SrvKeyspace_KeyspacePartition) String() string
type SrvKeyspace_ServedFrom ¶
type SrvKeyspace_ServedFrom struct { // the tablet type TabletType TabletType `protobuf:"varint,1,opt,name=tablet_type,json=tabletType,enum=topodata.TabletType" json:"tablet_type,omitempty"` // the keyspace name that's serving it Keyspace string `protobuf:"bytes,2,opt,name=keyspace" json:"keyspace,omitempty"` }
ServedFrom indicates a relationship between a TabletType and the keyspace name that's serving it.
func (*SrvKeyspace_ServedFrom) Descriptor ¶
func (*SrvKeyspace_ServedFrom) Descriptor() ([]byte, []int)
func (*SrvKeyspace_ServedFrom) ProtoMessage ¶
func (*SrvKeyspace_ServedFrom) ProtoMessage()
func (*SrvKeyspace_ServedFrom) Reset ¶
func (m *SrvKeyspace_ServedFrom) Reset()
func (*SrvKeyspace_ServedFrom) String ¶
func (m *SrvKeyspace_ServedFrom) String() string
type Tablet ¶
type Tablet struct { // alias is the unique name of the tablet. Alias *TabletAlias `protobuf:"bytes,1,opt,name=alias" json:"alias,omitempty"` // Fully qualified domain name of the host. Hostname string `protobuf:"bytes,2,opt,name=hostname" json:"hostname,omitempty"` // IP address, stored as a string. Ip string `protobuf:"bytes,3,opt,name=ip" json:"ip,omitempty"` // Map of named ports. Normally this should include vt, grpc, and mysql. PortMap map[string]int32 `` /* 150-byte string literal not displayed */ // Keyspace name. Keyspace string `protobuf:"bytes,5,opt,name=keyspace" json:"keyspace,omitempty"` // Shard name. If range based sharding is used, it should match // key_range. Shard string `protobuf:"bytes,6,opt,name=shard" json:"shard,omitempty"` // If range based sharding is used, range for the tablet's shard. KeyRange *KeyRange `protobuf:"bytes,7,opt,name=key_range,json=keyRange" json:"key_range,omitempty"` // type is the current type of the tablet. Type TabletType `protobuf:"varint,8,opt,name=type,enum=topodata.TabletType" json:"type,omitempty"` // It this is set, it is used as the database name instead of the // normal "vt_" + keyspace. DbNameOverride string `protobuf:"bytes,9,opt,name=db_name_override,json=dbNameOverride" json:"db_name_override,omitempty"` // tablet tags Tags map[string]string `` /* 129-byte string literal not displayed */ }
Tablet represents information about a running instance of vttablet.
func (*Tablet) Descriptor ¶
func (*Tablet) GetAlias ¶
func (m *Tablet) GetAlias() *TabletAlias
func (*Tablet) GetKeyRange ¶
func (*Tablet) GetPortMap ¶
func (*Tablet) ProtoMessage ¶
func (*Tablet) ProtoMessage()
type TabletAlias ¶
type TabletAlias struct { // cell is the cell (or datacenter) the tablet is in Cell string `protobuf:"bytes,1,opt,name=cell" json:"cell,omitempty"` // uid is a unique id for this tablet within the shard // (this is the MySQL server id as well). Uid uint32 `protobuf:"varint,2,opt,name=uid" json:"uid,omitempty"` }
TabletAlias is a globally unique tablet identifier.
func (*TabletAlias) Descriptor ¶
func (*TabletAlias) Descriptor() ([]byte, []int)
func (*TabletAlias) ProtoMessage ¶
func (*TabletAlias) ProtoMessage()
func (*TabletAlias) Reset ¶
func (m *TabletAlias) Reset()
func (*TabletAlias) String ¶
func (m *TabletAlias) String() string
type TabletType ¶
type TabletType int32
TabletType represents the type of a given tablet.
const ( // UNKNOWN is not a valid value. TabletType_UNKNOWN TabletType = 0 // MASTER is the master server for the shard. Only MASTER allows DMLs. TabletType_MASTER TabletType = 1 // REPLICA is a slave type. It is used to serve live traffic. // A REPLICA can be promoted to MASTER. A demoted MASTER will go to REPLICA. TabletType_REPLICA TabletType = 2 // RDONLY (old name) / BATCH (new name) is used to serve traffic for // long-running jobs. It is a separate type from REPLICA so // long-running queries don't affect web-like traffic. TabletType_RDONLY TabletType = 3 TabletType_BATCH TabletType = 3 // SPARE is a type of servers that cannot serve queries, but is available // in case an extra server is needed. TabletType_SPARE TabletType = 4 // EXPERIMENTAL is like SPARE, except it can serve queries. This // type can be used for usages not planned by Vitess, like online // export to another storage engine. TabletType_EXPERIMENTAL TabletType = 5 // BACKUP is the type a server goes to when taking a backup. No queries // can be served in BACKUP mode. TabletType_BACKUP TabletType = 6 // RESTORE is the type a server uses when restoring a backup, at // startup time. No queries can be served in RESTORE mode. TabletType_RESTORE TabletType = 7 // DRAINED is the type a server goes into when used by Vitess tools // to perform an offline action. It is a serving type (as // the tools processes may need to run queries), but it's not used // to route queries from Vitess users. In this state, // this tablet is dedicated to the process that uses it. TabletType_DRAINED TabletType = 8 )
func (TabletType) EnumDescriptor ¶
func (TabletType) EnumDescriptor() ([]byte, []int)
func (TabletType) String ¶
func (x TabletType) String() string