On 18 August 2016 at 14:44, Dan Berindei <dan.berin...@gmail.com> wrote:
> First, a question: doesn't query already configure its internal caches
> to use the AffinityPartitioner? Does it need the application caches to
> have AffinityPartitioner enabled, too?

No, we may provide reasonable defaults so that demos and tutorials
work out of the box but the general recommendation is that people make
their own configuration, as they will need to tune things, or add
CacheStores, etc..

> I'm ok with making AffinityPartitioner the default key partitioner:
> the less configuration the user has to change to make things work, the
> better. I'm also ok with changing it to use delegation, to make it
> easy for user to compose it with another key partitioner. We should
> just run some benchmarks first to check it doesn't affect performance
> for repl mode reads.

Ok!
https://issues.jboss.org/browse/ISPN-6956

I'll send a PR; regarding benchmarking I'll take the optimistic path:
we'll test it after it's integrated, worst case we can take it out.

> But I feel users should be able to disable it if they want to, so I
> wouldn't always wrap user partitioners. Also, usually less magic ==
> better. Query can validate the configuration and warn the user if the
> configuration doesn't have AffinityPartitioner in place.

I disagree on this as this would require more options, which make it
harder to use, and there's no good enough reason to give away the
option to disable this; especially as it kills other features.

BTW I never mentioned Query :)
We happen to use this functionality in Query but as I mentioned other
teams are looking forward to use this functionality, so I think we
should promote this as a public API, a new feature of Infinispan core.

So since you want to be able to disable it I won't wrap all user
configured implementations in my PR for ISPN-6956, but I'd prefer it
if as a second step you would reconsider and allow me to wrap them
all.

Thanks!
Sanne

>
> Cheers
> Dan
>
>
> On Thu, Aug 18, 2016 at 3:43 PM, Sanne Grinovero <sa...@infinispan.org> wrote:
>> Hi all,
>>
>> I would like for Infinispan to use the AffinityPartitioner by default,
>> replacing the HashFunctionPartitioner.
>>
>> This should have zero impact as AffinityPartitioner extends
>> HashFunctionPartitioner and only changes semantics when a key is
>> implementing AffinityTaggedKey.
>>
>> So the difference would be that for those using AffinityTaggedKey,
>> these would work out of the box without having to change the
>> configuration as well.
>>
>> WDYT?
>>
>> As a further but separate improvement, I'd change the
>> AffinityPartitioner to use delegation to the HashFunctionPartitioner
>> instead of extending it, and always wrap any user configured
>> partitioner with the AffinityPartitioner.
>> This would ensure that AffinityTaggedKey work as expectedf even when
>> people experiment with other partitioners, and avoids some complexity
>> of configuring Infinispan:
>>
>> "oh, I didn't know that changing hashing function would break feature [x]..."
>>
>> For the record, we're using AffinityTaggedKey in our evil plans to
>> improve query performance, but it's also sparked interest as a very
>> useful function by the HACEP team.
>>
>> I have patches ready...
>>
>> Thanks,
>> Sanne
>> _______________________________________________
>> infinispan-dev mailing list
>> infinispan-dev@lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/infinispan-dev
> _______________________________________________
> infinispan-dev mailing list
> infinispan-dev@lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/infinispan-dev
_______________________________________________
infinispan-dev mailing list
infinispan-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/infinispan-dev

Reply via email to