On Tue, Feb 16, 2016 at 04:38:04PM +0100, Alberto Garcia wrote: > On Mon 15 Feb 2016 05:40:29 PM CET, Stefan Hajnoczi wrote: > > On Fri, Feb 05, 2016 at 12:59:10PM +0200, Alberto Garcia wrote: > >> - With this series we set "a maximum of X operations/second for a > >> period of T seconds". If would also be possible to make it "a > >> maximum of X operations/second up to a total of Y operations". It > >> would be equivalent (Y = X * T) but I thought the current proposal > >> makes a more clear API. > > > > I find the diagram in the blog post clear. The QEMU code is a little > > harder to understand, it seems like there are too many variables and > > special cases. There are 4 core variables: > > > > 1. Refill rate (aka avg), e.g. 30 IOPS > > 2. Max bucket level (aka max * burst_length), e.g. 5.4 million IOPS > > 3. Burst rate (aka max), e.g. 3000 IOPS > > 4. Current bucket level > > The blog post uses the token bucket algorithm but QEMU uses the leaky > bucket. They're equivalent, but one is the reverse of the other:
Yes, I find the token bucket approach clearer :). Stefan
signature.asc
Description: PGP signature