[infinispan-dev] Design change in Infinispan Query

Mircea Markus mmarkus at redhat.com
Wed Feb 5 16:40:57 EST 2014


On Feb 5, 2014, at 7:34 PM, Emmanuel Bernard <emmanuel at hibernate.org> wrote:

> On Wed 2014-02-05 17:44, Radim Vansa wrote:
>> On 02/05/2014 05:30 PM, Emmanuel Bernard wrote:
>>> On Wed 2014-02-05 15:53, Mircea Markus wrote:
>>>> On Feb 3, 2014, at 9:32 AM, Emmanuel Bernard <emmanuel at 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 :-)
>>> 
>>> //some unified query giving me entries pointing by fk copy to bar and
>>> //buz objects. So I need to manually load these references.
>>> 
>>> //happy emmanuel
>>> Cache unifiedCache = cacheManager.getMotherOfAllCaches();
>>> Bar bar = unifiedCache.get(foo);
>>> Buz buz = unifiedCache.get(baz);
>>> 
>>> //not so happy emmanuel
>>> Cache fooCache = cacheManager.getCache("foo");
>>> Bar bar = fooCache.get(foo);
>>> Cache bazCache = cacheManager.getCache("baz");
>>> Buz buz = bazCache.put(baz);
>> 
>> cacheManager.getCache("foo").put("xxx", "yyy");
>> cacheManager.getCache("foo").put("xxx", "zzz");
>> 
>> String xxx = cacheManager.getMotherOfAllCaches().get("xxx");
>> System.out.println(xxx);
>> 
>> What should it print? Should an exception be thrown? Or should get on 
>> mother of all caches return Map<Cache<String, String>, String>?
>> 
> 
> Yes I'm aware of that.
> What I am saying is that the idea of search across caches as
> appealing as it is is is not the whole story.
> 
> People search, read, navigate and M/R their data in interleaved ways.

In all the non-trivial deployments I saw people used multiple caches for different data, instead of one. That's why for me this came as the straight forward way of structuring data and naturally I thought that querying multiple caches makes sense in this context: to allow querying to run over a model that is already in use and not to change the model to accommodate querying. 

> You need to project and think about a 100-200 lines of code that would
> use that feature in combination with other related features to see if
> that will be useful in the end (or gimmicky) and if the user experience
> (API mostly in our case) will be good or make people kill themselves.
> 
> The feeling I have is that we are too feature focused and not enough use
> case and experience focused.


Cheers,
-- 
Mircea Markus
Infinispan lead (www.infinispan.org)







More information about the infinispan-dev mailing list