Documentation
¶
Overview ¶
Package wrr contains the interface and common implementations of wrr algorithms.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type WRR ¶
type WRR interface {
// Add adds an item with weight to the WRR set.
//
// Add and Next need to be thread safe.
Add(item interface{}, weight int64)
// Next returns the next picked item.
//
// Add and Next need to be thread safe.
Next() interface{}
}
WRR defines an interface that implements weighted round robin.
func NewEDF ¶
func NewEDF() WRR
NewEDF creates Earliest Deadline First (EDF) (https://en.wikipedia.org/wiki/Earliest_deadline_first_scheduling) implementation for weighted round robin. Each pick from the schedule has the earliest deadline entry selected. Entries have deadlines set at current time + 1 / weight, providing weighted round robin behavior with O(log n) pick time.
Click to show internal directories.
Click to hide internal directories.