[infinispan-dev] Continuous Query Caching

Mircea Markus mircea.markus at jboss.com
Tue Sep 29 05:19:40 EDT 2009


On Sep 29, 2009, at 12:08 PM, Manik Surtani wrote:

>
> On 29 Sep 2009, at 09:57, Mircea Markus wrote:
>
>> Hi,
>>
>> Again, this is a feature from Coherence[1].
>>
>> Basic idea is to execute a query against the cache, and hold the  
>> result object. This result object will always have up to date query  
>> result; this means that whenever something is modified in the cache  
>> the result itself is updated. Advantage: if one performs the same  
>> query very often(e.g. several times every millisecond) the response  
>> will be fast and the system will not be overloaded.
>
> Is it really faster?  Surely all you save is the construction of the  
> various query objects, but the query itself would have to be re-run  
> every time.  Or does it attach a listener to the cache and check  
> whether any new additions/removals should be used to update the  
> result set?
this is the way it works. It is a sort of a near-cache, just that  
instead of being invalidated it is updated whenever the cache is  
updated. The documentation also suggests that they are using listeners.
>  I don't see how that could be much faster though.
I think it might be if the you are running *the same query* tons of  
times. Basically you don't do a map-reduce on all the nodes, but  
rather on every insertion (especially if the number of insertion is  
relative small compared to the number of same-query-bring-run) you  
updated (if necessary) the cached query result.
>
> Adding Hibernate-dev in cc so that the HIbernate Search guys can  
> comment too.
>
>> E.g.
>> Filter filter = new AndFilter(new EqualsFilter("getTrader",  
>> traderid),
>>                               new EqualsFilter("getStatus",  
>> Status.OPEN));
>> ContinuousQueryCache cacheOpenTrades = new  
>> ContinuousQueryCache(cache, filter);
>>
>> Iterator iter = cacheOpenTrades.entrySet().iterator(); //*this  
>> entrySet call will be instant!*
>>
>> FOr a full list of scenario in which this can be used take a look  
>> at [1].
>> Shall we consider adding something similar?
>>
>> Cheers,
>> Mircea
>>
>>
>> [1] http://download.oracle.com/docs/cd/E14526_01/coh.350/e14509/continuousquery.htm#BABBEIAH
>> _______________________________________________
>> infinispan-dev mailing list
>> infinispan-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/infinispan-dev
>
> --
> Manik Surtani
> manik at jboss.org
> Lead, Infinispan
> Lead, JBoss Cache
> http://www.infinispan.org
> http://www.jbosscache.org
>
>
>
>
> _______________________________________________
> infinispan-dev mailing list
> infinispan-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/infinispan-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/infinispan-dev/attachments/20090929/c9657023/attachment-0002.html 


More information about the infinispan-dev mailing list