[infinispan-dev] ISPN-2164 Why does a conditional remove (on it's own), end up with a write skew check?
Galder Zamarreño
galder at redhat.com
Tue Aug 14 04:53:25 EDT 2012
I created https://issues.jboss.org/browse/ISPN-2199
On Aug 8, 2012, at 7:37 PM, Sanne Grinovero wrote:
> Good explanation, I totally agree. Using SKIP_REMOTE_LOOKUP will
> always include some degree of inconsistent behaviour depending on the
> node it is run on, and as such is obviously reserved for very special
> use cases and only for users who understand the implications.
>
> We discussed a year ago about introducing an API safe version of
> IGNORE_RETURN_VALUES, which resulted in the Jokre project
> https://github.com/infinispan/jokre
>
> This isn't much active anymore as I was told that the JSR will have
> put() and other write operations having an explicit void return type.
>
> Anyway, +1 from me to introduce a IGNORE_RETURN_VALUES flag to be used
> today and as internal building block for these operations in the
> future.
>
> On 6 August 2012 14:09, Mircea Markus <mircea.markus at jboss.com> wrote:
>> Very good point.
>> I rdeplied inline:
>> https://github.com/infinispan/infinispan/pull/1221#discussion_r1310710
>>
>> On 6 Aug 2012, at 11:27, Sanne Grinovero wrote:
>>
>> I didn't read all the details on the optimistick lock implementation,
>> but want to warn here against the interpretation of the
>> SKIP_REMOTE_LOOKUP flag for these purposes; it should only apply on
>> REMOTE lookups, not imply a general-purpose "I'm ignoring the return
>> value", that would be misleading for users as it's not how things
>> work, it's not automatically implying for example also a skip from
>> cache stores or even a local data container GET hit.. which could
>> affect access statistics and eviction decisions.
>>
>> https://github.com/infinispan/infinispan/pull/1221#r1310549
>>
>> On 25 July 2012 14:27, Mircea Markus <mircea.markus at jboss.com> wrote:
>>
>>
>> On 25 Jul 2012, at 12:26, Galder Zamarreño wrote:
>>
>>
>>
>> On Jul 25, 2012, at 1:14 PM, Mircea Markus wrote:
>>
>>
>>
>> On 24 Jul 2012, at 20:44, Galder Zamarreño wrote:
>>
>>
>>
>> Mircea, one last thing. Why is there a check for local here?
>>
>>
>>
>> https://github.com/infinispan/infinispan/blob/master/core/src/main/java/org/infinispan/interceptors/locking/OptimisticLockingInterceptor.java#L95
>>
>>
>>
>> That basically means that concurrent cluster wide conditional removes won't
>>
>> work with OL + RR + writeSkew.
>>
>>
>>
>> Is there a reason why you added this local check?
>>
>>
>>
>> That code was added with ISPN-1941 and only handles write skew (ws) for
>>
>> local caches, Manik might comment a bit more about it.
>>
>>
>> The code that handles ws for distributed caches is in the
>>
>> VersionedEntryWrappingInterceptor(VEWI).
>>
>>
>>
>> I don't think that that code you pointed belongs to the
>>
>> OptimisticLockingInterceptor (OLI) for two reasons: the OLI is should handle
>>
>> the locking and write skew checking is an orthogonal concern. Also the rest
>>
>> of write skew checking is handled in the VEWI, so this logic should be
>>
>> placed there as well.
>>
>>
>> TBH I think write skew check logic deserve its own dedicated interceptor as
>>
>> the code in this area is spread over too many places: OLI, VEWI and some
>>
>> not nice static methods in the ClusteringDependentLogic. At least for me it
>>
>> is quite hard to follow it as it is now. Wdyt?
>>
>>
>>
>> Good points. So, we need a better way of doing write skew checks both local
>>
>> and in cluster, from a more centralized place then?
>>
>>
>> Let's see what Manik and others say, but won't be able to properly fix this
>>
>> before I go on holidays. There's a valid workaround for it though, so not
>>
>> massively urgent.
>>
>>
>> +1.
>>
>>
>>
>> _______________________________________________
>>
>> 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
>
> _______________________________________________
> infinispan-dev mailing list
> infinispan-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/infinispan-dev
--
Galder Zamarreño
Sr. Software Engineer
Infinispan, JBoss Cache
More information about the infinispan-dev
mailing list