[infinispan-dev] Long time no hear, or ISPN-78 continued
Ales Justin
ales.justin at gmail.com
Sat Oct 15 17:45:33 EDT 2011
It does, if we then have some additional method to seal-off / make-immutable that stream / big-object.
e.g.
void closeFinally(K key); // method name is taken from GAE's FileWriteChannel
Which then probably calls for check method
boolean isOpen(K key);
I would also need a way to lock access per Key,
but I guess Infinispan already knows how to to this?
(probably in this case it would have to know the Key's sub-Keys of all pieces and lock them?)
boolean lock(K key); // true if the lock succeeded
Or perhaps with timeout as well
boolean lock(K key, long time, TimeUnit unit); // true if the lock succeeded
and of course: void unlock(K key);
-Ales
> Hi Ales,
>
> yes, that sounds reasonable. In fact, I have been worrying about the
> user relinquishing control over how Infinispan handles streaming large
> objects. One quick question, though: I envisaged
>
> OutputStream writeToKey(K key)
>
> to be the "standard" way of streaming large objects into Infinispan.
> Doesn't it fit your bill?
>
> - Olaf
>
> Am 14.10.11 22:29, schrieb Ales Justin:
>> @Olaf:
>>
>> Looking at the API you proposed
>> / public interface StreamingHandler<K> {//
>> / / void writeToKey(K key, InputStream largeObject);//
>> // OutputStream writeToKey(K key);//
>> // InputStream readFromKey(K key);//
>> // boolean removeKey(K key);//
>> // StreamingHandler<K> //withFlags(Flag... flags//);
>> // }/
>>
>> and what I actually need:
>> *
>> http://code.google.com/p/googleappengine/source/browse/trunk/java/src/main/com/google/appengine/api/files/FileService.java
>> --> see openRecordWriteChannel and openRecordReadChannel
>>
>> Where the read has a way of jumping back&forth in the channel,
>> and write can seal the written bytes with closeFinally.
>> *
>> http://code.google.com/p/googleappengine/source/browse/trunk/java/src/main/com/google/appengine/api/files/FileReadChannel.java
>> *
>> http://code.google.com/p/googleappengine/source/browse/trunk/java/src/main/com/google/appengine/api/files/FileWriteChannel.java
>>
>> Hence I guess we could change it to
>>
>> Closeable writeToKey(K key, InputStream largeObject); -- returning a
>> handle to seal off (making it immutable from then on)
>>
>> InputStream readFromKey (K key, long position); -- also taking
>> position into consideration
>>
>> Wdyt?
>>
>> (unfortunately I also don't have the time to help with impl,
>> but I'm definitely willing to test it (since I need it anyway, right :-)))
>>
>> -Ales
More information about the infinispan-dev
mailing list