Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewClusterMappingProvider ¶
func NewClusterMappingProvider(key string, kvStore kv.Store, opts ClusterMappingProviderOptions, ) (storage.ClusterMappingProvider, error)
NewClusterMappingProvider returns a new ClusterMappingProvider around a kv store and key
func NewShardSet ¶
NewShardSet returns a new shard set initialized with a list of shards
Types ¶
type ClusterMappingProviderOptions ¶
type ClusterMappingProviderOptions interface {
// Logger is the logger to use
Logger(logger xlog.Logger) ClusterMappingProviderOptions
GetLogger() xlog.Logger
// Clock is the clock to use
Clock(clock clock.Clock) ClusterMappingProviderOptions
GetClock() clock.Clock
}
ClusterMappingProviderOptions are options used to build a ClusterMappingProvider
func NewClusterMappingProviderOptions ¶
func NewClusterMappingProviderOptions() ClusterMappingProviderOptions
NewClusterMappingProviderOptions returns new empty ClusterMappingProviderOptions
type CommitOptions ¶
type CommitOptions interface {
// RolloutDelay is the amount of time to wait for the configuration to be
// distributed across all interested listeners
GetRolloutDelay() time.Duration
RolloutDelay(t time.Duration) CommitOptions
// TransitionDelay is the amount of time to wait for the cluster to converge
// on the same state after a transition
GetTransitionDelay() time.Duration
TransitionDelay(t time.Duration) CommitOptions
}
CommitOptions are options for performing a commit
func NewCommitOptions ¶
func NewCommitOptions() CommitOptions
NewCommitOptions returns an empty set of CommitOptions
type StoragePlacement ¶
type StoragePlacement interface {
// AddDatabase adds a new database to handle a set of retention periods
AddDatabase(db schema.DatabaseProperties) error
// JoinCluster adds a new cluster to an existing database and rebalances
// shards onto that cluster
JoinCluster(db string, c schema.ClusterProperties, config proto.Message) error
// DecommissionCluster marks a cluster as being decomissioned, moving
// its shards to other clusters. Read traffic will continue to be directed
// to this cluster until the max retention period for this database expires
DecommissionCluster(db, c string) error
// UpdateClusterConfig updates the configurtion for a cluster
UpdateClusterConfig(db, c string, config proto.Message) error
// CommitChanges commits and propagates any unapplied changes
CommitChanges(version int, opts CommitOptions) error
// GetPendingChanges gets pending placement changes
GetPendingChanges() (int, *schema.Placement, *schema.PlacementChanges, error)
}
StoragePlacement handles mapping shards
func NewStoragePlacement ¶
func NewStoragePlacement(kv kv.Store, key string, opts StoragePlacementOptions) (StoragePlacement, error)
NewStoragePlacement creates a new StoragePlacement around a given config store
type StoragePlacementOptions ¶
type StoragePlacementOptions interface {
// Clock is the clock to use in placement
GetClock() clock.Clock
Clock(c clock.Clock) StoragePlacementOptions
// Logger is the logger to use in placement
GetLogger() xlog.Logger
Logger(l xlog.Logger) StoragePlacementOptions
}
StoragePlacementOptions are options to building a storage placement
func NewStoragePlacementOptions ¶
func NewStoragePlacementOptions() StoragePlacementOptions
NewStoragePlacementOptions creates new StoragePlacementOptions