[infinispan-dev] [infinispan-internal] async processing documentation (+ nice inconsistency scenario example)

Mircea Markus mmarkus at redhat.com
Tue Mar 19 17:04:51 EDT 2013


On 19 Mar 2013, at 20:58, Dan Berindei wrote:

> 
> > * Marshalling happens in the async thread (the same one that puts the message on the wire) rather than in the caller's thread
> my understanding is that there's no such additional thread, but caller's thread goes to the network stack even for async calls. I think Bela can put some light on this.
> 
> If you use bundling, the bundler thread writes the bytes to the socket, not the caller's thread. TCP also uses a special sender thread for each connection, if use_sender_queues=true (the default).
right. But the bundeler would need to know the serialized form in order to calculate the size... 
> 
>  
> > * sendMessage() should accept a marshaller and unmarshaller per invocation
> 
> There is a org.jgroups.Buffer that we pass to the org.jgroups.Message we send across, another, less intrusive way would be to write a lazy wrapper around it.
> 
> 
> Still, FRAG2 needs the actual bytes of the message, and that's a long time before the message gets passed to the bundler thread.
so the message needs to be serizlized in the caller's thread for either the bundler or FRAG2 
> 
> Cheers
> Dan
>  
> _______________________________________________
> infinispan-dev mailing list
> infinispan-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/infinispan-dev

Cheers,
-- 
Mircea Markus
Infinispan lead (www.infinispan.org)







More information about the infinispan-dev mailing list