[infinispan-dev] Why is loading from store needed before storing in cache store?
Elias Ross
genman at noderunner.net
Thu Nov 11 03:13:31 EST 2010
On Thu, Oct 21, 2010 at 1:42 AM, "이희승 (Trustin Lee)" <trustin at gmail.com> wrote:
>
> I love the idea of returning NoReturnCache instead of returning Cache
> with unexpected behavior. Perhaps we could even extract the async
> operations and do the same:
>
> AsyncCache ac = cache.asAsync();
> NotifyingFuture<..> f = ac.put(k, v);
>
> But, what if a user want the combination of NoReturnCache and AsyncCache?
>
> Name? We should brainstorm a little bit more. :-)
It's very nice to be able to use the pure java.util.Map interface in
code that really only makes use of get/put/remove--while allowing at
least for the "NoReturnCache" behavior. Client code shouldn't be tied
to a specific Infinispan interface, though I do agree that such an
interface will help users avoid trouble.
What may be useful is to simply return an interface that is restricted
to the altered methods, and a method to get the parent cache, and a
method to get a java.util.Map view.
For example:
interface Cache {
NoReturnCache noReturn();
AsyncCache async();
}
interface NoReturnCache {
void put(K k, V v);
void remove(K k);
Cache getCache();
NoReturnCache async(); // is get() async?
Map map();
}
interface AsyncCache {
NotifyingFuture put(K k, V v);
// etc.
Cache getCache();
Map map(); // necessary
}
More information about the infinispan-dev
mailing list