[jbosscache-dev] Some new Cache usage questions

Ben Wang ben.wang at jboss.com
Mon Sep 4 20:29:20 EDT 2006


It does. But then, does it mean I need to keep both the reference for Cache and "parent" Node at the same time? Although Cache is a wrapper, it does have some additional APIs like evict and also getRegion() that doesn't exist in Node. Or what's your recommendation?

Actually, currently I am keeping the CacheSPI reference (and also possibly NodeSPI in the future when it has life of its own) within my code. Keeping the Node reference doesn't seem to make much sense to me, although this can be just a pattern for the customed cache provider (e.g., PojoCache).

-Ben

-----Original Message-----
From: Manik Surtani [mailto:manik at jboss.org] 
Sent: Tuesday, September 05, 2006 12:10 AM
To: Ben Wang
Cc: Bela Ban; jbosscache-dev at lists.jboss.org
Subject: Re: [jbosscache-dev] Some new Cache usage questions


On 4 Sep 2006, at 16:58, Ben Wang wrote:

> 1. I suspect people using JBC for session management purpose won't 
> store the Node ref but the Cache instead. Brian can say better but for 
> example of the http session, unless you store the root Node, otherwise 
> caching the children Node is not that useful.

Node jSessionNode = Cache.getChild(Fqn.fromString("/ JSESSIONID"));  // this can be cached...
Node sessionNode = jSessionNode.getChild(Fqn.fromString
(sessionId));  // this can be retrieved every time...

Does this help in any way?


>
> 2. ic. Do we have explicit contract for Cache to be "root" Node only? 
> I mean, even getRoot() is just a self pointer, it still serves the 
> purpose, IMO.

 From the javadocs: "The cache is essentially a wrapper around the default root Node."

http://labs.jboss.com/file-access/default/members/jbosscache/freezone/
docs/Habanero/api/org/jboss/cache/Cache.html


>
> -Ben
>
> -----Original Message-----
> From: Manik Surtani [mailto:manik at jboss.org]
> Sent: Monday, September 04, 2006 7:06 PM
> To: Ben Wang
> Cc: Bela Ban; jbosscache-dev at lists.jboss.org
> Subject: Re: [jbosscache-dev] Some new Cache usage questions
>
> Not in your case, no.  But many other use cases will be able to  
> cache a node and use it directly.
>
> I too would rather keep the API clean in this regard.  Also, calling
> cache.getRoot() is redundant since the Cache interface is a wrapper  
> around the root Node.  In fact, I even think we should get rid of the
> getRoot() method.
>
> Cheers,
> --
> Manik Surtani
>
> Lead, JBoss Cache
> JBoss, a division of Red Hat
>
> Email: manik at jboss.org
> Telephone: +44 7786 702 706
> MSN: manik at surtani.org
> Yahoo/AIM/Skype: maniksurtani
>
>
> On 1 Sep 2006, at 15:49, Ben Wang wrote:
>
>> Thing is I only do put to specific fqn once. So caching it doesn't  
>> buy
>> you anything.
>>
>> -----Original Message-----
>> From: Bela Ban
>> Sent: Friday, September 01, 2006 10:22 PM
>> To: Ben Wang
>> Cc: jbosscache-dev at lists.jboss.org
>> Subject: Re: [jbosscache-dev] Some new Cache usage questions
>>
>> My 2 cents: I'd rather keep the API clean, at the expense of folks
>> potentially writing wrapping code (like Ben).
>>
>> Your code samples look a bit weird:
>> #1
>> Why do you always get the child ? Can't you get the node and cache  
>> it,
>> e.g.
>> Node n=cache.getRoot().getChild(fqn);
>> n.containsKey(PojoInstance.KEY)
>>
>> #2
>> Same as for #1: you don't need to call cache.getRoot().getChild
>> (fqn) all the time, for example in a loop, simply cache it
>>
>>
>> Ben Wang wrote:
>>> Manik,
>>>
>>> While trying to use the new API in PojoCache, I have found that I
>>> need to:
>>>
>>> 1. To check if a attribute exist, I need to do:
>>> cache_.getRoot().getChild(fqn_).getData().values().contains
>>> (PojoInstance.KEY)
>>>
>>> 2. And then, I need to do a lot of cache_.getRoot().getChild
>>> (fqn).put(map)
>>>
>>> So looks like I need to write a wrapper layer just to provide
>>> straight api for:
>>>
>>> Cache_.exists(fqn, key)
>>> And
>>> Cache_.put(fqn, map)
>>>
>>> If this is rare case, then I will bite the bullet. But if it is a
>>> common one, then that really begs the question whether we should
>>> provide additional apis or not?
>>
>> --
>> Bela Ban
>> Lead JGroups / Manager JBoss Clustering Group JBoss - a division of
>> Red Hat
>>
>> _______________________________________________
>> jbosscache-dev mailing list
>> jbosscache-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/jbosscache-dev
>





More information about the jbosscache-dev mailing list