Documentation ¶
Overview ¶
Package memorytopo contains an implementation of the topo.Backend API based on an in-process memory map.
It also contains the plumbing to make it a topo.Impl as well. Eventually we will ove the difference to go/vt/topo.
Index ¶
- func NewServer(cells ...string) topo.Server
- func VersionFromInt(version int64) topo.Version
- type MemoryTopo
- func (mt *MemoryTopo) Close()
- func (mt *MemoryTopo) Create(ctx context.Context, cell, filePath string, contents []byte) (topo.Version, error)
- func (mt *MemoryTopo) CreateKeyspace(ctx context.Context, keyspace string, value *topodatapb.Keyspace) error
- func (mt *MemoryTopo) CreateShard(ctx context.Context, keyspace, shard string, value *topodatapb.Shard) error
- func (mt *MemoryTopo) CreateTablet(ctx context.Context, tablet *topodatapb.Tablet) error
- func (mt *MemoryTopo) Delete(ctx context.Context, cell, filePath string, version topo.Version) error
- func (mt *MemoryTopo) DeleteKeyspace(ctx context.Context, keyspace string) error
- func (mt *MemoryTopo) DeleteKeyspaceReplication(ctx context.Context, cell, keyspace string) error
- func (mt *MemoryTopo) DeleteShard(ctx context.Context, keyspace, shard string) error
- func (mt *MemoryTopo) DeleteShardReplication(ctx context.Context, cell, keyspace, shard string) error
- func (mt *MemoryTopo) DeleteSrvKeyspace(ctx context.Context, cell, keyspace string) error
- func (mt *MemoryTopo) DeleteTablet(ctx context.Context, alias *topodatapb.TabletAlias) error
- func (mt *MemoryTopo) Get(ctx context.Context, cell, filePath string) ([]byte, topo.Version, error)
- func (mt *MemoryTopo) GetKeyspace(ctx context.Context, keyspace string) (*topodatapb.Keyspace, int64, error)
- func (mt *MemoryTopo) GetKeyspaces(ctx context.Context) ([]string, error)
- func (mt *MemoryTopo) GetKnownCells(ctx context.Context) ([]string, error)
- func (mt *MemoryTopo) GetShard(ctx context.Context, keyspace, shard string) (*topodatapb.Shard, int64, error)
- func (mt *MemoryTopo) GetShardNames(ctx context.Context, keyspace string) ([]string, error)
- func (mt *MemoryTopo) GetShardReplication(ctx context.Context, cell, keyspace, shard string) (*topo.ShardReplicationInfo, error)
- func (mt *MemoryTopo) GetSrvKeyspace(ctx context.Context, cell, keyspace string) (*topodatapb.SrvKeyspace, error)
- func (mt *MemoryTopo) GetSrvKeyspaceNames(ctx context.Context, cell string) ([]string, error)
- func (mt *MemoryTopo) GetSrvVSchema(ctx context.Context, cell string) (*vschemapb.SrvVSchema, error)
- func (mt *MemoryTopo) GetTablet(ctx context.Context, alias *topodatapb.TabletAlias) (*topodatapb.Tablet, int64, error)
- func (mt *MemoryTopo) GetTabletsByCell(ctx context.Context, cell string) ([]*topodatapb.TabletAlias, error)
- func (s *MemoryTopo) GetVSchema(ctx context.Context, keyspace string) (*vschemapb.Keyspace, error)
- func (mt *MemoryTopo) ListDir(ctx context.Context, cell, dirPath string) ([]string, error)
- func (mt *MemoryTopo) LockKeyspaceForAction(ctx context.Context, keyspace, contents string) (string, error)
- func (mt *MemoryTopo) LockShardForAction(ctx context.Context, keyspace, shard, contents string) (string, error)
- func (mt *MemoryTopo) NewMasterParticipation(name, id string) (topo.MasterParticipation, error)
- func (s *MemoryTopo) SaveVSchema(ctx context.Context, keyspace string, vschema *vschemapb.Keyspace) error
- func (mt *MemoryTopo) UnlockKeyspaceForAction(ctx context.Context, keyspace, actionPath, results string) error
- func (mt *MemoryTopo) UnlockShardForAction(ctx context.Context, keyspace, shard, actionPath, results string) error
- func (mt *MemoryTopo) Update(ctx context.Context, cell, filePath string, contents []byte, ...) (topo.Version, error)
- func (mt *MemoryTopo) UpdateKeyspace(ctx context.Context, keyspace string, value *topodatapb.Keyspace, ...) (int64, error)
- func (mt *MemoryTopo) UpdateShard(ctx context.Context, keyspace, shard string, value *topodatapb.Shard, ...) (int64, error)
- func (mt *MemoryTopo) UpdateShardReplicationFields(ctx context.Context, cell, keyspace, shard string, ...) error
- func (mt *MemoryTopo) UpdateSrvKeyspace(ctx context.Context, cell, keyspace string, ...) error
- func (mt *MemoryTopo) UpdateSrvVSchema(ctx context.Context, cell string, srvVSchema *vschemapb.SrvVSchema) error
- func (mt *MemoryTopo) UpdateTablet(ctx context.Context, tablet *topodatapb.Tablet, existingVersion int64) (int64, error)
- func (mt *MemoryTopo) Watch(ctx context.Context, cell string, filePath string) (*topo.WatchData, <-chan *topo.WatchData, topo.CancelFunc)
- type NodeVersion
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func VersionFromInt ¶
VersionFromInt is used by old-style functions to create a proper Version: if version is -1, returns nil. Otherwise returns the NodeVersion object.
Types ¶
type MemoryTopo ¶
type MemoryTopo struct {
// contains filtered or unexported fields
}
MemoryTopo is a memory-based implementation of topo.Backend. It takes a file-system like approach, with directories at each level being an actual directory node. This is meant to be closer to file-system like servers, like ZooKeeper or Chubby. etcd or Consul implementations would be closer to a node-based implementation.
func New ¶
func New(cells ...string) *MemoryTopo
New returns a new MemoryTopo for all the cells. It will create one cell for each parameter passed in. It will log.Fatal out in case of a problem.
func (*MemoryTopo) Create ¶
func (mt *MemoryTopo) Create(ctx context.Context, cell, filePath string, contents []byte) (topo.Version, error)
Create is part of topo.Backend interface.
func (*MemoryTopo) CreateKeyspace ¶
func (mt *MemoryTopo) CreateKeyspace(ctx context.Context, keyspace string, value *topodatapb.Keyspace) error
CreateKeyspace implements topo.Impl.CreateKeyspace
func (*MemoryTopo) CreateShard ¶
func (mt *MemoryTopo) CreateShard(ctx context.Context, keyspace, shard string, value *topodatapb.Shard) error
CreateShard implements topo.Impl.CreateShard
func (*MemoryTopo) CreateTablet ¶
func (mt *MemoryTopo) CreateTablet(ctx context.Context, tablet *topodatapb.Tablet) error
CreateTablet implements topo.Impl.CreateTablet
func (*MemoryTopo) Delete ¶
func (mt *MemoryTopo) Delete(ctx context.Context, cell, filePath string, version topo.Version) error
Delete is part of topo.Backend interface.
func (*MemoryTopo) DeleteKeyspace ¶
func (mt *MemoryTopo) DeleteKeyspace(ctx context.Context, keyspace string) error
DeleteKeyspace implements topo.Impl.DeleteKeyspace
func (*MemoryTopo) DeleteKeyspaceReplication ¶
func (mt *MemoryTopo) DeleteKeyspaceReplication(ctx context.Context, cell, keyspace string) error
DeleteKeyspaceReplication implements topo.Impl.DeleteKeyspaceReplication
func (*MemoryTopo) DeleteShard ¶
func (mt *MemoryTopo) DeleteShard(ctx context.Context, keyspace, shard string) error
DeleteShard implements topo.Impl.DeleteShard
func (*MemoryTopo) DeleteShardReplication ¶
func (mt *MemoryTopo) DeleteShardReplication(ctx context.Context, cell, keyspace, shard string) error
DeleteShardReplication implements topo.Impl.DeleteShardReplication
func (*MemoryTopo) DeleteSrvKeyspace ¶
func (mt *MemoryTopo) DeleteSrvKeyspace(ctx context.Context, cell, keyspace string) error
DeleteSrvKeyspace implements topo.Impl.DeleteSrvKeyspace
func (*MemoryTopo) DeleteTablet ¶
func (mt *MemoryTopo) DeleteTablet(ctx context.Context, alias *topodatapb.TabletAlias) error
DeleteTablet implements topo.Impl.DeleteTablet
func (*MemoryTopo) GetKeyspace ¶
func (mt *MemoryTopo) GetKeyspace(ctx context.Context, keyspace string) (*topodatapb.Keyspace, int64, error)
GetKeyspace implements topo.Impl.GetKeyspace
func (*MemoryTopo) GetKeyspaces ¶
func (mt *MemoryTopo) GetKeyspaces(ctx context.Context) ([]string, error)
GetKeyspaces implements topo.Impl.GetKeyspaces
func (*MemoryTopo) GetKnownCells ¶
func (mt *MemoryTopo) GetKnownCells(ctx context.Context) ([]string, error)
GetKnownCells is part of the topo.Server interface.
func (*MemoryTopo) GetShard ¶
func (mt *MemoryTopo) GetShard(ctx context.Context, keyspace, shard string) (*topodatapb.Shard, int64, error)
GetShard implements topo.Impl.GetShard
func (*MemoryTopo) GetShardNames ¶
GetShardNames implements topo.Impl.GetShardNames
func (*MemoryTopo) GetShardReplication ¶
func (mt *MemoryTopo) GetShardReplication(ctx context.Context, cell, keyspace, shard string) (*topo.ShardReplicationInfo, error)
GetShardReplication implements topo.Impl.GetShardReplication
func (*MemoryTopo) GetSrvKeyspace ¶
func (mt *MemoryTopo) GetSrvKeyspace(ctx context.Context, cell, keyspace string) (*topodatapb.SrvKeyspace, error)
GetSrvKeyspace implements topo.Impl.GetSrvKeyspace
func (*MemoryTopo) GetSrvKeyspaceNames ¶
GetSrvKeyspaceNames implements topo.Impl.GetSrvKeyspaceNames
func (*MemoryTopo) GetSrvVSchema ¶
func (mt *MemoryTopo) GetSrvVSchema(ctx context.Context, cell string) (*vschemapb.SrvVSchema, error)
GetSrvVSchema implements topo.Impl.GetSrvVSchema
func (*MemoryTopo) GetTablet ¶
func (mt *MemoryTopo) GetTablet(ctx context.Context, alias *topodatapb.TabletAlias) (*topodatapb.Tablet, int64, error)
GetTablet implements topo.Impl.GetTablet
func (*MemoryTopo) GetTabletsByCell ¶
func (mt *MemoryTopo) GetTabletsByCell(ctx context.Context, cell string) ([]*topodatapb.TabletAlias, error)
GetTabletsByCell implements topo.Impl.GetTabletsByCell
func (*MemoryTopo) GetVSchema ¶
GetVSchema fetches the vschema from the topo.
func (*MemoryTopo) LockKeyspaceForAction ¶
func (mt *MemoryTopo) LockKeyspaceForAction(ctx context.Context, keyspace, contents string) (string, error)
LockKeyspaceForAction implements topo.Server.
func (*MemoryTopo) LockShardForAction ¶
func (mt *MemoryTopo) LockShardForAction(ctx context.Context, keyspace, shard, contents string) (string, error)
LockShardForAction implements topo.Server.
func (*MemoryTopo) NewMasterParticipation ¶
func (mt *MemoryTopo) NewMasterParticipation(name, id string) (topo.MasterParticipation, error)
NewMasterParticipation is part of the topo.Server interface
func (*MemoryTopo) SaveVSchema ¶
func (s *MemoryTopo) SaveVSchema(ctx context.Context, keyspace string, vschema *vschemapb.Keyspace) error
SaveVSchema saves the JSON vschema into the topo.
func (*MemoryTopo) UnlockKeyspaceForAction ¶
func (mt *MemoryTopo) UnlockKeyspaceForAction(ctx context.Context, keyspace, actionPath, results string) error
UnlockKeyspaceForAction implements topo.Server.
func (*MemoryTopo) UnlockShardForAction ¶
func (mt *MemoryTopo) UnlockShardForAction(ctx context.Context, keyspace, shard, actionPath, results string) error
UnlockShardForAction implements topo.Server.
func (*MemoryTopo) Update ¶
func (mt *MemoryTopo) Update(ctx context.Context, cell, filePath string, contents []byte, version topo.Version) (topo.Version, error)
Update is part of topo.Backend interface.
func (*MemoryTopo) UpdateKeyspace ¶
func (mt *MemoryTopo) UpdateKeyspace(ctx context.Context, keyspace string, value *topodatapb.Keyspace, existingVersion int64) (int64, error)
UpdateKeyspace implements topo.Impl.UpdateKeyspace
func (*MemoryTopo) UpdateShard ¶
func (mt *MemoryTopo) UpdateShard(ctx context.Context, keyspace, shard string, value *topodatapb.Shard, existingVersion int64) (int64, error)
UpdateShard implements topo.Impl.UpdateShard
func (*MemoryTopo) UpdateShardReplicationFields ¶
func (mt *MemoryTopo) UpdateShardReplicationFields(ctx context.Context, cell, keyspace, shard string, update func(*topodatapb.ShardReplication) error) error
UpdateShardReplicationFields implements topo.Impl.UpdateShardReplicationFields
func (*MemoryTopo) UpdateSrvKeyspace ¶
func (mt *MemoryTopo) UpdateSrvKeyspace(ctx context.Context, cell, keyspace string, srvKeyspace *topodatapb.SrvKeyspace) error
UpdateSrvKeyspace implements topo.Impl.UpdateSrvKeyspace
func (*MemoryTopo) UpdateSrvVSchema ¶
func (mt *MemoryTopo) UpdateSrvVSchema(ctx context.Context, cell string, srvVSchema *vschemapb.SrvVSchema) error
UpdateSrvVSchema implements topo.Impl.UpdateSrvVSchema
func (*MemoryTopo) UpdateTablet ¶
func (mt *MemoryTopo) UpdateTablet(ctx context.Context, tablet *topodatapb.Tablet, existingVersion int64) (int64, error)
UpdateTablet implements topo.Impl.UpdateTablet
type NodeVersion ¶
type NodeVersion uint64
NodeVersion is the local topo.Version implementation
func (NodeVersion) String ¶
func (v NodeVersion) String() string