Hi,

I pushed a PR for this thread:

https://github.com/apache/geronimo-safeguard/pull/4

TCK passed.

regards,

François
[email protected]

Le 22/04/2020 à 16:14, Francois Papon a écrit :
> Hi Romain,
>
> I can try to take a look and push a PR :)
>
> regards,
> François
> [email protected]
> Le 22/04/2020 à 15:48, Romain Manni-Bucau a écrit :
>> Hi everyone,
>>
>> I'm not a big user of Microprofile fault tolerance (without entering
>> into the details cause it is not the goal but I'm putting the
>> features elsewhere in the app), but I realized implementing a custom
>> circuit breaker with more or less the same kind of configuration than
>> MP one that we can optimize our circuit breaker implementation. Long
>> story short the spec requires to have a rolling window which is
>> basically an array of boolean representing successes and failures.
>> However, our current impl uses an array of boolean, which means for a
>> window of 1024 we'll have 1024 boolean.
>>
>> Using a BitSet we can make it pass to 16 longs instead of 1024
>> booleans which is quite different.
>> Implementation change is not that complicated, it will just require
>> to handle an "int count" next to the BitSet to replace the
>> array.length usage and bitSet.cardinality() will give us the number
>> of "true" (so false are 1-that).
>> With that we can reduce a lot the memory usage of our circuit breaker.
>>
>> If anyone wants to have a go, feel free to open a PR.
>>
>> Romain Manni-Bucau
>> @rmannibucau <https://twitter.com/rmannibucau> |  Blog
>> <https://rmannibucau.metawerx.net/> | Old Blog
>> <http://rmannibucau.wordpress.com> | Github
>> <https://github.com/rmannibucau> | LinkedIn
>> <https://www.linkedin.com/in/rmannibucau> | Book
>> <https://www.packtpub.com/application-development/java-ee-8-high-performance>

Reply via email to