Agree with Val, we should bring it back.

⁣D.​

On Jul 24, 2017, 8:14 PM, at 8:14 PM, Valentin Kulichenko 
<valentin.kuliche...@gmail.com> wrote:
>Guys,
>
>Some time ago we removed FairAffinityFunction from the project.
>However, my
>communication with users clearly shows that is was a rush decision.
>Distribution showed by Fair AF is much better than default and for some
>users it's extremely important. Basically, there are cases when
>rendezvous
>function is no-go.
>
>The reason for removal was that it was possible to get inconsistent
>results
>in case multiple caches were created on different topologies. However,
>I
>think this is fixable. As far as I understand, the only thing we need
>to do
>is to maintain a single AffinityFunctionContext for all the caches with
>same affinity function. Currently for each cache we have separate
>context
>which holds the state used by Fair AF. If the state is different, we
>have
>an issue.
>
>The only question is how to check whether two functions are the same or
>not. In case both cache node filter and backup filter are not
>configured,
>this is easy - if number of partitions and excludeNeighbors flag are
>equal
>for two functions, these functions are also equal.
>
>With filters it's a bit more complicated as these are custom
>implementations and in general case we don't know how to compare them.
>Although, to solve this problem, we can enforce user to implement
>equals()
>method for these implementation if Fair AF is used.
>
>I propose to make changes described above and bring Fair AF back.
>
>Thoughts?
>
>-Val

Reply via email to