[infinispan-dev] HotRod client - optimize serialization

Galder Zamarreño galder at redhat.com
Tue Jul 6 12:14:21 EDT 2010


On Jul 6, 2010, at 6:11 PM, Mircea Markus wrote:

> 
> On 5 Jul 2010, at 14:01, Manik Surtani wrote:
> 
>> 
>> On 5 Jul 2010, at 11:58, Mircea Markus wrote:
>> 
>>> 
>>> On 5 Jul 2010, at 13:50, Manik Surtani wrote:
>>> 
>>>> 
>>>> On 5 Jul 2010, at 11:33, Mircea Markus wrote:
>>>> 
>>>>> 
>>>>> On 5 Jul 2010, at 13:21, Manik Surtani wrote:
>>>>> 
>>>>>> What sort of socket do you use?  Depending on this, socket.getOutputStream() may be the most efficient (if it is a zero-copy NIO buffer for example).
>>>>>     SocketChannel socketChannel = SocketChannel.open(serverAddress);
>>>>>     *socket* = socketChannel.socket();
>>>> 
>>>> Hmm.  You could use ByteBuffers - and reuse them as well, if you know that the byte array sizes are *roughly* similar.  
>>> no guarantee on that as I don't have control over the values.
>>>> You will still have the same problem of a spike in value size that you described below, in the case of pooling ExposedBAOS instances.  You could maintain a threshold and if such a stream were to exceed this size, instead of resetting and reusing this instance you drop it from the pool and create a new one... 
>>>> 
>>>> This threshold would have to be configurable though otherwise you may end up with a lot of unnecessary GC churn.
>>> The more I think about it the more I like the idea of serializing the values directly to the socket, and not reuse buffers for keys: these are small objects, and not sure that the complexity (mainly thinking about concurrency control) would payoff.
>> 
>> Yeah I'm all for keeping it simple.
> I can't even serialize the value over the socket, as the protocol requires me to first send the value size and then the serialized value: so I need to preserialize in a byte[]. 

We'd need an streaming protocol to be able to do that (https://jira.jboss.org/browse/ISPN-449)

>> 
>> --
>> 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
> 
> 
> _______________________________________________
> infinispan-dev mailing list
> infinispan-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/infinispan-dev

--
Galder Zamarreño
Sr. Software Engineer
Infinispan, JBoss Cache




More information about the infinispan-dev mailing list