activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From nigro_franz <>
Subject Re: [DISCUSS] Artemis IOPS Limiter strategy
Date Fri, 12 May 2017 14:48:02 GMT
I was thinking of a similar solution but I've discovered that couldn't work
(in the old or the new TimedBuffer too), because of the
TimedBuffer::checkSize method that could force a flush if the batch buffer
if not big enough to receive new data, going IOPS.
Sadly TimedBuffer::checkSize is outside any timeout, but depends on the

That's why I've implemented the "compensation" right after any flush, in
order to work with forced flushes too:

Doing it on TimedBuffer::flush all the flushes on disk will be compensated
(half of the story: ASYNCIO is async so depends on libAIO partially!)
Regarding the IOPS computation I've built this, as you've suggested:

The performance seems pretty good, it compensates well but it is faster than
the original version, limiting IOPS too!


View this message in context:
Sent from the ActiveMQ - Dev mailing list archive at

View raw message