Documentation
¶
Index ¶
- Variables
- func IntToFloat(value uint64) (float_value float64)
- type Config
- type DefaultHasher
- type Hasher
- type Rendezvous
- func (r *Rendezvous) Add(member WeightedMember)
- func (r *Rendezvous) ComputeWeightedScore(m WeightedMember, key []byte) (score float64)
- func (r *Rendezvous) GetClosestN(key []byte, count int) (members []WeightedMember, err error)
- func (r *Rendezvous) GetMembers() (members []WeightedMember)
- func (r *Rendezvous) LocateKey(key []byte) (member WeightedMember)
- func (r *Rendezvous) Remove(name string)
- type WeightedMember
Constants ¶
This section is empty.
Variables ¶
View Source
var ErrInsufficientMemberCount = consistent.ErrInsufficientMemberCount
View Source
var FiftyThreeOnes = uint64(0xFFFFFFFFFFFFFFFF >> (64 - 53))
View Source
var FiftyThreeZeros = float64(1 << 53)
Functions ¶
func IntToFloat ¶
IntToFloat is a golang port of the python implementation mentioned here https://en.wikipedia.org/wiki/Rendezvous_hashing#Weighted_rendezvous_hash
Types ¶
type Config ¶
type Config struct {
Hasher Hasher
}
Config represents a structure to control the rendezvous package.
type DefaultHasher ¶
type DefaultHasher struct {
}
func (*DefaultHasher) Sum64 ¶
func (h *DefaultHasher) Sum64(b []byte) uint64
type Hasher ¶
type Hasher consistent.Hasher
type Rendezvous ¶
type Rendezvous struct {
// contains filtered or unexported fields
}
Rendezvous holds the information about the members of the consistent hash circle.
func New ¶
func New(members []WeightedMember, config Config) *Rendezvous
New creates and returns a new Rendezvous object
func (*Rendezvous) Add ¶
func (r *Rendezvous) Add(member WeightedMember)
func (*Rendezvous) ComputeWeightedScore ¶
func (r *Rendezvous) ComputeWeightedScore(m WeightedMember, key []byte) (score float64)
func (*Rendezvous) GetClosestN ¶
func (r *Rendezvous) GetClosestN(key []byte, count int) (members []WeightedMember, err error)
GetClosestN returns the closest N members to the key, the members returned is not sorted
func (*Rendezvous) GetMembers ¶
func (r *Rendezvous) GetMembers() (members []WeightedMember)
GetMembers returns a thread-safe copy of members.
func (*Rendezvous) LocateKey ¶
func (r *Rendezvous) LocateKey(key []byte) (member WeightedMember)
func (*Rendezvous) Remove ¶
func (r *Rendezvous) Remove(name string)
type WeightedMember ¶
type WeightedMember interface {
consistent.Member
Weight() float64
}
Click to show internal directories.
Click to hide internal directories.