[infinispan-dev] [ISPN-78] Finalising the API

Manik Surtani manik at jboss.org
Wed May 18 06:57:44 EDT 2011


On 12 May 2011, at 15:41, Olaf Bergner wrote:

> After finishing the first iteration of implementing ISPN-961 - Spring 
> Integration - I would like to turn my attention back to ISPN-78 - Large 
> Object Support. Specifically, I would like to finalise the API before 
> concentrating on the hard stuff, namely locking and transaction support.
> 
> These are the changes I currently envision:
> 
> 1. Introduce a dedicated StreamingCache whereas now we have a 
> StreamingHandler a user obtains via Cache.getStreamingHandler(). A 
> StreamingCache would be a special kind of cache completely separate from 
> org.infinispan.Cache. Users would obtain StreamingCache instances from a 
> CacheManager.

Ah ok, I responded to your previous thread, it is now clear as to how you intend to "construct" a cache manager.

> Rationale: Users will IMHO most likely never mix and match "regular" as 
> well as large objects within a single cache. It is my experience that 
> (well-behaved) applications are acutely aware of the special treatment 
> large objects warrant. I therefore suspect that users will reserve a 
> dedicated cache for large objects anyway. Therefore it doesn't make 
> sense for such a cache to expose an API for "regular" objects.
> Further, we might be able to provide sensible default settings for such 
> large object caches whereas now "regular" and large object caches share 
> the same default settings (since INFINISPAN cannot tell the difference).
> 
> 2. Rename API methods:
> 
>     void writeToKey(K key, InputStream largeObject) -> void 
> storeLargeObject(K key, InputStream largeObject)
>     OutputStream writeToKey(K key)                         -> 
> OutputStream newLargeObject(K key)
>     InputStream readFromKey(K key)                         -> 
> InputStream getLargeObject(K key)
>     boolean removeKey(K key)                                   -> 
> boolean removeLargeObject(K key)
> 
> Rationale: The API should center around large objects, not their keys 
> and method names should reflect this.

Again, I suggested a few other names in your previous thread.  :)

Cheers
Manik
--
Manik Surtani
manik at jboss.org
twitter.com/maniksurtani

Lead, Infinispan
http://www.infinispan.org






More information about the infinispan-dev mailing list