@Michael: this is the PR:

https://github.com/apache/activemq-artemis/pull/1256


This is the commit:
https://github.com/apache/activemq-artemis/commit/21c9ed85cf6b9a53debdd32747bd42b2e733da80



Notice that the commit ID from the PR may change after merge, as we
rebase before merging it.

On Fri, May 12, 2017 at 1:10 PM, Michael André Pearce
<[email protected]> wrote:
> I've left for the day now. If I get time over the weekend I'll try see if I 
> can make a build of 2.1.0 without that change and see if it makes any 
> difference.
>
> Can someone point me to the PR for that change, so I know what I'm unpicking 
> locally?
>
> Sent from my iPhone
>
>> On 12 May 2017, at 17:58, Clebert Suconic <[email protected]> wrote:
>>
>> As the only thing that could affect this is the Change on timed buffer.
>> Afaik
>>
>>
>> On Fri, May 12, 2017 at 12:57 PM Clebert Suconic <[email protected]>
>> wrote:
>>
>>> I'm considering only keeping the pooled buffer part and switch back to the
>>> ole sleep or an improved sleep we had.
>>>
>>>
>>>
>>> On Fri, May 12, 2017 at 12:49 PM Michael André Pearce <
>>> [email protected]> wrote:
>>>
>>>> As it seems  I can't send images to mail list, just sent to  you both via
>>>> email. Some graphs we have comparing versions.
>>>>
>>>> Not sure what changes might cause it.
>>>>
>>>>> On 12 May 2017, at 17:37, Clebert Suconic <[email protected]>
>>>> wrote:
>>>>>
>>>>> There is a class we use on producer.  TokenLimiter.  Perhaps you could
>>>>> reuse that one ?
>>>>>
>>>>>
>>>>>> On Fri, May 12, 2017 at 11:00 AM nigro_franz <[email protected]>
>>>> wrote:
>>>>>>
>>>>>> 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
>>>>>> writers.
>>>>>>
>>>>>> That's why I've implemented the "compensation" right after any flush,
>>>> in
>>>>>> order to work with forced flushes too:
>>>>>>
>>>>>>
>>>>>>
>>>> https://github.com/franz1981/activemq-artemis/blob/4b831021dab3e0dd276f477e3ea665e11ab54d0e/artemis-journal/src/main/java/org/apache/activemq/artemis/core/io/buffer/TimedBuffer.java#L338
>>>>>>
>>>>>> 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:
>>>>>>
>>>>>>
>>>> https://github.com/franz1981/activemq-artemis/blob/4b831021dab3e0dd276f477e3ea665e11ab54d0e/artemis-journal/src/main/java/org/apache/activemq/artemis/core/io/buffer/TimedBuffer.java#L119
>>>>>>
>>>>>> The performance seems pretty good, it compensates well but it is faster
>>>>>> than
>>>>>> the original version, limiting IOPS too!
>>>>>>
>>>>>> Thanks,
>>>>>> Franz
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> View this message in context:
>>>>>>
>>>> http://activemq.2283324.n4.nabble.com/DISCUSS-Artemis-IOPS-Limiter-strategy-tp4725875p4726057.html
>>>>>> Sent from the ActiveMQ - Dev mailing list archive at Nabble.com.
>>>>>>
>>>>> --
>>>>> Clebert Suconic
>>>>
>>> --
>>> Clebert Suconic
>>>
>> --
>> Clebert Suconic



-- 
Clebert Suconic

Reply via email to