Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( // ErrDuplicateShards returned when shard set contains duplicate shards. 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 []byte) uint32 // 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.