[infinispan-dev] Conflict Manager and Partition Handling Blog

Sanne Grinovero sanne at infinispan.org
Mon Jul 31 12:03:36 EDT 2017


Great job! I love to see this improved and being described in detail.

+1 to add some practical examples, as I'm afraid we only notice
limitations in features like this when thinking about specific
use-cases.

The option `REMOVE_ALL` seems sensible for the disposable Cache use
case. One question though: if one partition has a defined value for a
key, while the other partition has no value (null) for this same key,
is it considered a conflict?
I think you need to clarify if a "null" in a subset of partitions
causes the conflict merge to be triggered or not. I think it should:
for example having the cache use case in mind, an explicit
invalidation needs to be propagated safely.

Thanks,
Sanne


On 26 July 2017 at 13:41, Ryan Emerson <remerson at redhat.com> wrote:
> Hi Galder,
>
> Thanks for the feedback.
>
> Conflicts are detected by applying a predicate to the returned Map<Address, CacheEntry> for each cache entry. Currently this predicate utilises Stream::distinct (so .equals), to check for multiple versions of an entry. So implementing pluggable strategies for defining a conflict should be trivial :)
>
> Good idea about a simple tutorial/demo, I'll look into it when I get a chance.
>
> Cheers
> Ryan
>
> ----- Original Message -----
>> Oh, if we can't find a simple tutorial for it, there's always
>> https://github.com/infinispan-demos :)
>>
>> --
>> Galder Zamarreño
>> Infinispan, Red Hat
>>
>> > On 25 Jul 2017, at 17:11, Galder Zamarreño <galder at redhat.com> wrote:
>> >
>> > One more thing: have you thought how we could have a simple tutorial on
>> > this feature?
>> >
>> > It'd be great to find a simple, reduced, example to show it off :)
>> >
>> > Cheers,
>> > --
>> > Galder Zamarreño
>> > Infinispan, Red Hat
>> >
>> >> On 25 Jul 2017, at 16:54, Galder Zamarreño <galder at redhat.com> wrote:
>> >>
>> >> Hey Ryan,
>> >>
>> >> Very detailed blog post! Great work on both the post and the feature! :D
>> >>
>> >> While reading, the following question came to my mind: how does Infinispan
>> >> determine there's a conflict? Does it rely on .equals() based equality?
>> >>
>> >> A follow up would be: whether in the future this could be pluggable, e.g.
>> >> when comparing a version field is enough to realise there's a conflict.
>> >> As opposed of relying in .equals(), if that's what's being used inside :)
>> >>
>> >> Cheers,
>> >> --
>> >> Galder Zamarreño
>> >> Infinispan, Red Hat
>> >>
>> >>> On 17 Jul 2017, at 14:16, Ryan Emerson <remerson at redhat.com> wrote:
>> >>>
>> >>> Hi Everyone,
>> >>>
>> >>> Here's a blog post on the introduction of ConflictManager and the recent
>> >>> changes to partition handling.
>> >>>
>> >>> http://blog.infinispan.org/2017/07/conflict-management-and-partition.html
>> >>>
>> >>> Cheers
>> >>> Ryan
>> >>> _______________________________________________
>> >>> infinispan-dev mailing list
>> >>> infinispan-dev at lists.jboss.org
>> >>> https://lists.jboss.org/mailman/listinfo/infinispan-dev
>> >>
>> >
>>
>>
>> _______________________________________________
>> infinispan-dev mailing list
>> infinispan-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/infinispan-dev
>
> _______________________________________________
> infinispan-dev mailing list
> infinispan-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/infinispan-dev



More information about the infinispan-dev mailing list