package wrr
import "google.golang.org/grpc/internal/wrr"
Package wrr contains the interface and common implementations of wrr algorithms.
Index ¶
Types ¶
type WRR ¶
type WRR interface {
// Add adds an item with weight to the WRR set. Add must be only called
// before any calls to Next.
Add(item any, weight int64)
// Next returns the next picked item.
//
// Next needs to be thread safe. Add may not be called after any call to
// Next.
Next() any
}
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.
func NewRandom ¶
func NewRandom() WRR
NewRandom creates a new WRR with random.
Source Files ¶
edf.go random.go wrr.go
- Version
- v1.79.3
- Published
- Mar 17, 2026
- Platform
- linux/amd64
- Imports
- 5 packages
- Last checked
- 16 minutes ago –
Tools for package owners.