Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( // ErrDuplicateShards returned when shard set is empty ErrDuplicateShards = errors.New("duplicate shards") // ErrInvalidShardID is returned on an invalid shard ID ErrInvalidShardID = errors.New("no shard with given ID") )
Functions ¶
Types ¶
type HashFn ¶
HashFn is a sharding hash function.
func DefaultHashFn ¶
DefaultHashFn generates a HashFn based on murmur32
type HashGen ¶
HashGen generates HashFn based on the length of shards.
func NewHashGenWithSeed ¶
NewHashGenWithSeed generates a HashFnGen based on murmur32 with a given seed
type ShardSet ¶
type ShardSet interface {
// All returns a slice to the shards in this set.
All() []shard.Shard
// AllIDs returns a slice to the shard IDs in this set.
AllIDs() []uint32
// Lookup will return a shard for a given identifier.
Lookup(id ident.ID) uint32
// LookupStateByID returns the state of the shard with a given ID.
LookupStateByID(shardID uint32) (shard.State, error)
// Min returns the smallest shard owned by this shard set.
Min() uint32
// Max returns the largest shard owned by this shard set.
Max() uint32
// HashFn returns the sharding hash function.
HashFn() HashFn
}
ShardSet contains a sharding function and a set of shards, this interface allows for potentially out of order shard sets.
func NewEmptyShardSet ¶
NewEmptyShardSet creates a new sharding scheme with an empty set of shards
Click to show internal directories.
Click to hide internal directories.