Skip to content

Implement static stride in weighted round robin #10180

@YifeiZhuang

Description

@YifeiZhuang

Currently java uses a priority queue to implement the EDF algorithm in WRR in the scheduler. It requires holding the lock to update weights and pick a subchannel. An optimization is to use the static stride algorithm. The static stride maps the weight sets in to float numbers and return an index for the next pick result. It does not require a lock so potentially reduces pick latency due to lock contention. It also aligns with other languages implementation, e.g. C++ uses the static stride.

A global sequence number may be used among picker instances to give move accurate results.

go/static-stride-scheduler

cc. @ejona86

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions