On May 31, 2013, at 4:11 PM, Sanne Grinovero <[email protected]> wrote:

> On 31 May 2013 14:37, William Burns <[email protected]> wrote:
>> While adding changes for cache methods (entrySet, keySet, values, size) to 
>> include passivated entries it had been pointed out to conditionally do these 
>> operations if flags such as SKIP_CACHE_STORE and SKIP_CACHE_LOAD were 
>> provided.  Also does anyone have any feedback on if both flags should apply 
>> or just say SKIP_CACHE_STORE?
> 
> Right, that could definitely be improved. I would expect both to be
> needed as one mentions "store", the other "load", but in practice it
> seems that SKIP_CACHE_STORE skips both operations. I think this should
> at least be clarified in the javadocs.
> 
>> Currently SizeCommand, EntrySetCommand, ValuesCommand and KeySetCommand do 
>> not inherit from FlagAffectedCommand which are used for commands that 
>> behavior is dependent upon flags.
> 
> You just listed the most evil operations you can use in Infinispan.
> All of these are inherently broken as we need to constantly clarify to
> users that they only apply to the local datastore, which makes it even
> trickier to test something on a single node and then expect it to work
> on multiple nodes as well..

… which is why they're not included in JCache/JSR-107. All you have there is an 
iterator()...

> I know, we have warnings on javadoc but since it implements
> ConcurrentMap and Map, these warnings are easily overseen.
> 
> So my doubt actually is, since these operations are fundamentally
> unreliable, why should they include CacheStore s as well? IMHO they
> should all throw a runtime exception to flag they are not supported.
> I guess we don't throw such exceptions as they could be useful for
> some metrics, but still I think it would be more appropriate to move
> this responsibility to a statistics/monitoring API.

Indeed, they should be removed at some point and align ourselves closer to 
JCache on this occasion. +1 on being something about statistics/monitoring, 
which is done at the local level (tools can be used to aggregate results, or 
even map/reduce?)

> 
> Sanne
> 
> 
>> The problem is that FlagAffectedCommand currently extends VisitableCommand, 
>> TopologyAffectedCommand, MetadataAwareCommand interfaces.  These interfaces 
>> do not really apply to the commands I am working on as they are local only.  
>> I was planning on removing the extended interfaces from the 
>> FlagAffectedCommand interface and update all the commands that implement 
>> this interface currently to make sure they still properly implement the 
>> additional interfaces.  Searching for instanceof FlagAffectedCommand it also 
>> appears that all current references should be alright after refactoring.  
>> Once these interfaces are decoupled I can add the FlagAffectedCommand 
>> interface to the SizeCommand, EntrySetCommand, ValuesCommand and 
>> KeySetCommand and subsequently to the CommandFactory and my changes should 
>> be good.
>> 
>> Any opinions or concerns?
>> 
>> Thanks,
>> 
>> - Will
>> _______________________________________________
>> infinispan-dev mailing list
>> [email protected]
>> https://lists.jboss.org/mailman/listinfo/infinispan-dev
> 
> _______________________________________________
> infinispan-dev mailing list
> [email protected]
> https://lists.jboss.org/mailman/listinfo/infinispan-dev


--
Galder Zamarreño
[email protected]
twitter.com/galderz

Project Lead, Escalante
http://escalante.io

Engineer, Infinispan
http://infinispan.org


_______________________________________________
infinispan-dev mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/infinispan-dev

Reply via email to