Commit Graph

2 Commits

Author SHA1 Message Date
Michael Handschuh 1a0947aa59 Defines ITokenBucket and a LeakyBucket implementation
The inspiration for this implementation design comes directly from:
https://github.com/mxplusb/TokenBucket

Minor modifications were made, including a prominent behavior change
that prevents the Refill method from executing the initial refill
before any time has passed.

We'll use the leaky bucket algorithm to track consumption of CPU
resources by the soon-to-be-implemented training feature.
2019-10-19 01:52:07 -04:00
Michael Handschuh 0c862c5652 Move ITimeProvider and RealTimeProvider to Common
These are fairly generic and useful types that have zero dependencies.
We'll reuse the the ITimeProvider for the leaky bucket implementation
to permit for better unit testing as well as potentially alternate modes
of managing the time that the leaky bucket sees, such as simulation time.
2019-10-19 01:52:07 -04:00