cayenne-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andrus Adamchik <and...@objectstyle.org>
Subject Re: [jira] [Commented] (CAY-1595) EHCache implementation of Provider<QueryCache>
Date Thu, 28 Jul 2011 06:51:11 GMT
End users will need to understand (a) when planning their cache group use. 

(b) is explicitly allowed by Cayenne SelectQuery (and other queries) API. Also this can happen
implicitly when 2 queries with different cache groups resolve to the same key. We have some
options here:

1. Quietly ignore the possibility of multiple cache groups. In explicit case use the first
group, don't try to analyze the implicit case.
2. Throw (or warn via the logs) on multiple cache groups per key. In explicit case it will
be easy to detect, in implicit case it will require a scan of N caches (where N is the number
of cache groups in the system).
3. Throw (or warn via the logs) on multiple explicit cache groups per key. Ignore implicit
ones.

Andrus


On Jul 28, 2011, at 9:37 AM, Christian Grobmeier wrote:
> Thanks for your explaination
> 
>> (a) require more discipline from the users in assigning cache groups and
>> (b) disallow multiple cache groups per key (be it for the same query instance or
for different, but equivalent query instances).
> 
> But surely this is something the enduser aka Cayenne-user will not
> have to deal with it right?
> In my imagination I choose "EHCache" from the modeler and Cayenne is
> doing everything for me.
> 
> 
>> 
>> 
>> On Jul 28, 2011, at 12:01 AM, Andrus Adamchik wrote:
>>> On Jul 27, 2011, at 11:39 PM, Christian Grobmeier wrote:
>>> 
>>>> What is the difference to Cache-Groups then?
>>> 
>>> (Also see my other email on this)
>>> 
>>> The difference is subtle, but may be essential in some scenarios. OSCache cache
groups are "tags" that can be applied to any combinations of cache keys (including multiple
groups per key). E.g. on a certain event you may invalidate group1, and on some other event
- group2, and these two groups may span over overlapping (but not equivalent) sets of keys.
>>> 
>>> Using EhCache instances to emulate cache groups implies a hierarchy. All keys
belong to either zero or one cache group. Now the user must ensure that 2 queries with the
same cache key, but created in different places of the code are using the same group.
>>> 
>>> This is not the end of the world of course, and I must admit that most often
than not queries are actually organized this way already.
>>> 
>>> Andrus
>>> 
>>> 
>>> 
>>> 
>> 
>> 
> 
> 
> 
> -- 
> http://www.grobmeier.de
> 


Mime
View raw message