On Feb 25, 2014, at 5:08 PM, Sanne Grinovero <sa...@infinispan.org> wrote:
> There also is the opposite problem to be considered, as Emmanuel > suggested on 11/04/2012: > you can't forbid the user to store the same object (same type and same > id) in two different caches, where each Cache might be using different > indexing options. > > If the "search service" is a global concept, and you run a query which > matches object X, we'll return it to the user but he won't be able to > figure out from which cache it's being sourced: is that ok? Can't the user figure that out based on the way the query is built? I mean the problem is similar with the databases: if address is both a table and an column in the USER table, then it's the query (select) that determines where from the address is returned. > > Ultimately this implies a query might return the same object X in > multiple positions in the result list of the query; for example it > might be the top result according to some criteria but also be the 5th > result because of how it was indexed in a different case: maybe > someone will find good use for this "capability" but I see it > primarily as a source of confusion. Curious if this cannot be source of data can/cannot be specified within the query. > Finally, if we move the search service as a global component, there > might be an impact in how we explain security: an ACL filter applied > on one cache - or the index metadata produced by that cache - might > not be applied in the same way by an entity being matched through a > second cache. > Not least a user's permission to access one cache (or not) will affect > his results in a rather complex way. I'll let Tristan comment more on this, but is this really different from an SQL database where you grant access on individual tables and run a query involving multiple of them? > > I'm wondering if we need to prevent such situations. > > Sanne > > On 25 February 2014 16:24, Mircea Markus <mmar...@redhat.com> wrote: >> >> On Feb 25, 2014, at 3:46 PM, Adrian Nistor <anis...@gmail.com> wrote: >> >>> They can do what they please. Either put multiple types in one basket or >>> put them in separate caches (one type per cache). But allowing / >>> recommending is one thing, mandating it is a different story. >>> >>> There's no reason to forbid _any_ of these scenarios / mandate one over the >>> other! There was previously in this thread some suggestion of mandating the >>> one type per cache usage. -1 for it >> >> Agreed. I actually don't see how we can enforce people that declare >> Cache<Object,Object> not put whatever they want in it. Also makes total >> sense for smaller caches as it is easy to set up etc. >> The debate in this email, the way I understood it, was: are/should people >> using multiple caches for storing data? If yes we should consider querying >> functionality spreading over multiple caches. >> >>> >>> >>> >>> On Tue, Feb 25, 2014 at 5:08 PM, Mircea Markus <mmar...@redhat.com> wrote: >>> >>> On Feb 25, 2014, at 9:28 AM, Emmanuel Bernard <emman...@hibernate.org> >>> wrote: >>> >>>>> On 24 févr. 2014, at 17:39, Mircea Markus <mmar...@redhat.com> wrote: >>>>> >>>>> >>>>>> On Feb 17, 2014, at 10:13 PM, Emmanuel Bernard <emman...@hibernate.org> >>>>>> wrote: >>>>>> >>>>>> By the way, Mircea, Sanne and I had quite a long discussion about this >>>>>> one and the idea of one cache per entity. It turns out that the right >>>>>> (as in easy) solution does involve a higher level programming model like >>>>>> OGM provides. You can simulate it yourself using the Infinispan APIs but >>>>>> it is just cumbersome. >>>>> >>>>> Curious to hear the whole story :-) >>>>> We cannot mandate all the suers to use OGM though, one of the reasons >>>>> being OGM is not platform independent (hotrod). >>>> >>>> Then solve all the issues I have raised with a magic wand and come back to >>>> me when you have done it, I'm interested. >>> >>> People are going to use infinispan with one cache per entity, because it >>> makes sense: >>> - different config (repl/dist | persistent/non-persistent) for different >>> data types >>> - have map/reduce tasks running only the Person entires not on Dog as well, >>> when you want to select (Person) where age > 18 >>> I don't see a reason to forbid this, on the contrary. The way I see it the >>> relation between (OGM, ISPN) <=> (Hibernate, JDBC). Indeed OGM would be a >>> better abstraction and should be recommended as such for the Java clients, >>> but ultimately we're a general purpose storage engine that is available to >>> different platforms as well. >>> >>> >>> 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 > > _______________________________________________ > infinispan-dev mailing list > infinispan-dev@lists.jboss.org > https://lists.jboss.org/mailman/listinfo/infinispan-dev 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