Documentation ¶
Overview ¶
An implementation of consistent hashing or hash-rings, specifically, static, non-migrating hash-rings. These rings are static and non-migrating by not being designed to change at runtime (no insertion or removal of nodes). This departs this implementation from other hash-ring systems, that are designed to dynamically distribute data onto a cluster while nodes are constantly being added and removed.
This implementation is designed with empathis on systems, in which "nodes" have limited disk-space while storing a dataset that possibly exceeds their disk-capacity, rendering certain "nodes" incapable to store further records.
In order not to loose those records, techniques such as those similar to Cuckoo-Hashing are applied.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type MultiJumpSeedRing64 ¶
type MultiJumpSeedRing64 struct { SeedRing64 N int }
func (*MultiJumpSeedRing64) MutateStore ¶
func (s *MultiJumpSeedRing64) MutateStore(key []byte, m Mutator) bool
type MultiStepSeedRing64 ¶
type MultiStepSeedRing64 struct { SeedRing64 N int }
func (*MultiStepSeedRing64) MutateStore ¶
func (s *MultiStepSeedRing64) MutateStore(key []byte, m Mutator) bool
type SeedRing64 ¶
func (*SeedRing64) MutateStore ¶
func (s *SeedRing64) MutateStore(key []byte, m Mutator) bool