On Feb 3, 2014, at 9:32 AM, Emmanuel Bernard <emman...@hibernate.org> wrote:
> Sure searching for any cache is useful. What I was advocating is that if you > search for more than one cache transparently, then you probably need to CRUD > for more than one cache transparently as well. And this is not being > discussed. Not sure what you mean by CRUD over multiple caches? ATM one can run a TX over multiple caches, but I think there's something else you have in mind :-) > > I have to admit that having to add a cache name to the stored elements of the > index documents makes me a bit sad. sad because of the increased index size? > I was already unhappy when I had to do it for class names. Renaming a cache > will be a heavy operation too. > Sanne, if we know that we don't share the semi index for different caches, > can we avoid the need to store the cache name in each document? > > BTW, this discussion should be in the open. +1 > > On 31 janv. 2014, at 18:04, Adrian Nistor <anis...@gmail.com> wrote: > >> I think it conceptually makes sense to have one entity type per cache but >> this should be a good practice rather than an enforced constraint. It would >> be a bit late and difficult to add such a constraint now. >> >> The design change we are talking about is being able to search across >> caches. That can easily be implemented regardless of this. We can move the >> SearchManager from Cache scope to CacheManager scope. Indexes are bound to >> types not to caches anyway, so same-type entities from multiple caches can >> end up in the same index, we just need to store an extra hidden field: the >> name of the originating cache. This move would also allow us to share some >> lucene/hsearch resources. >> >> We can easily continue to support Search.getSearchManager(cache) so old api >> usages continue to work. This would return a delegating/decorating >> SearchManager that creates queries that are automatically restricted to the >> scope of the given cache. >> >> Piece of cake? :) >> >> >> >> On Thu, Jan 30, 2014 at 9:56 PM, Mircea Markus <mmar...@redhat.com> wrote: >> curious to see your thoughts on this: it is a recurring topic and will >> affects the way we design things in future in a significant way. >> E.g. if we think (recommend) that a distinct cache should be used for each >> entity, then we'll need querying to work between caches. Also some cache >> stores can be built along these lines (e.g. for the JPA cache store we only >> need it to support a single entity type). >> >> Begin forwarded message: >> >> > On Jan 30, 2014, at 9:42 AM, Galder Zamarreño <gal...@redhat.com> wrote: >> > >> >> >> >> On Jan 21, 2014, at 11:52 PM, Mircea Markus <mmar...@redhat.com> wrote: >> >> >> >>> >> >>> On Jan 15, 2014, at 1:42 PM, Emmanuel Bernard <emman...@hibernate.org> >> >>> wrote: >> >>> >> >>>> By the way, people looking for that feature are also asking for a >> >>>> unified Cache API accessing these several caches right? Otherwise I am >> >>>> not fully understanding why they ask for a unified query. >> >>>> Do you have written detailed use cases somewhere for me to better >> >>>> understand what is really requested? >> >>> >> >>> IMO from a user perspective, being able to run queries spreading several >> >>> caches makes the programming simplifies the programming model: each >> >>> cache corresponding to a single entity type, with potentially different >> >>> configuration. >> >> >> >> Not sure if it simplifies things TBH if the configuration is the same. >> >> IMO, it just adds clutter. >> > >> > Not sure I follow: having a cache that contains both Cars and Persons >> > sound more cluttering to me. I think it's cumbersome to write any kind of >> > querying with an heterogenous cache, e.g. Map/Reduce tasks that need to >> > count all the green Cars would need to be aware of Persons and ignore >> > them. Not only it is harder to write, but discourages code reuse and makes >> > it hard to maintain (if you'll add Pets in the same cache in future you >> > need to update the M/R code as well). And of course there are also >> > different cache-based configuration options that are not immediately >> > obvious (at design time) but will be in the future (there are more Persons >> > than Cars, they live longer/expiry etc): mixing everything together in the >> > same cache from the begging is a design decision that might bite you in >> > the future. >> > >> > The way I see it - and very curious to see your opinion on this - >> > following an database analogy, the CacheManager corresponds to an Database >> > and the Cache to a Table. Hence my thought that queries spreading multiple >> > caches are both useful and needed (same as query spreading over multiple >> > tables). >> > >> > >> >> Cheers, >> -- >> Mircea Markus >> Infinispan lead (www.infinispan.org) >> >> >> >> >> Cheers, -- Mircea Markus Infinispan lead (www.infinispan.org) _______________________________________________ infinispan-dev mailing list infinispan-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/infinispan-dev