feat: remove minimum-load option, hard-coded to 5%

This commit is contained in:
2026-04-03 16:24:25 +02:00
parent c834f004a2
commit 8b55ce7264
3 changed files with 6 additions and 28 deletions

View File

@@ -12,11 +12,12 @@ const DefaultCapacity uint64 = 16
// hash table implementations use 2.
const DefaultGrowthFactor uint64 = 2
// DefaultMinimumLoad is the default lowest acceptable occupancy of a [Table].
// MinimumLoad is the default lowest acceptable occupancy of a [Table]. The
// higher the minimum load, the more likely that a [Table.Put] will not succeed.
// The value of 5% is taken from [libcuckoo].
//
// [libcuckoo]: https://github.com/efficient/libcuckoo/blob/656714705a055df2b7a605eb3c71586d9da1e119/libcuckoo/cuckoohash_config.hh#L21
const DefaultMinimumLoad float64 = 0.05
const MinimumLoad float64 = 0.05
type settings struct {
growthFactor uint64
@@ -38,19 +39,6 @@ func Capacity(value int) Option {
return func(s *settings) { s.bucketSize = uint64(value) }
}
// MinimumLoad modifies the [DefaultMinimumLoad] of the [Table]. The value must
// be between 0.00 and 1.00.
//
// The higher the minimum load, the more likely that a [Table.Put] will not
// succeed. Minimum loads above 20% are not tested.
func MinimumLoad(value float64) Option {
if value < 0.00 || value > 1.00 {
panic(fmt.Sprintf("go-cuckoo: MinimumLoad must be between 0.00 and 1.00, got %f", value))
}
return func(s *settings) { s.minLoadFactor = value }
}
// GrowthFactor controls how much the capacity of the [Table] multiplies when
// it must resize. The value must be greater than 1.
func GrowthFactor(value int) Option {