Create a ticket: https://issues.apache.org/jira/browse/IGNITE-5836

-Val

On Tue, Jul 25, 2017 at 11:54 AM, Valentin Kulichenko <
valentin.kuliche...@gmail.com> wrote:

> Semyon,
>
> We had some improvements, but to knowledge fair affinity still provides
> much better distribution (at least I haven't seen any results showing
> otherwise). Please correct me if I'm wrong.
>
> Actually, I think it's not an issue with fair function in particular, but
> rather a design flow in affinity manager. The exact same issue will exist
> not only with fair function, but with ANY function that
> uses AffinityFunctionContext#previousAssignment to calculate assignments.
> And the context is provided from the outside, function has nothing to do
> with it.
>
> So let's fix the root cause and bring innocent FairAF back :)
>
> -Val
>
> On Tue, Jul 25, 2017 at 1:07 AM, Semyon Boikov <sboi...@gridgain.com>
> wrote:
>
>> Valentin,
>>
>> As far as I know in 2.0 some changes were made in rendezvous function so
>> now it can provide better result. Do you have some numbers for 2.0 so that
>> we can compare rendezvous and fair affinity functions?
>>
>> Thanks
>>
>> On Tue, Jul 25, 2017 at 5:13 AM, <dsetrak...@apache.org> wrote:
>>
>> > 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