[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