[infinispan-dev] Rethinking asynchronism in Infinispan

Krzysztof Sobolewski Krzysztof.Sobolewski at atm.com.pl
Wed Jan 13 11:21:33 EST 2010


Dnia środa 13 styczeń 2010 o 15:22:01 napisałeś:

> 1)  RPC: Using JGroups' ResponseMode of waiting for none.

Speaking of which...

I ran into a problem in JBoss Cache some time ago (it's one of those not yet 
reported ;) ) with aynchronous replication and non-blocking state transfer. 
AFAICS Infinispan uses the same replication mechanism as JBC, so I think it's 
relevant here.

The thing is that the "asynchronous" replication uses the usual method of 
submitting a task to an Executor. This is no problem without NBST, because the 
tasks are not interested in responses and finish immediately, but with NBSP 
they need responses to facilitate replay. And since they need to wait for 
responses, they clog the Executor's threads and under sufficiently heavy load, 
it all degrades to effectively synchronous replication. And it happens quite 
fast, really.

The good news is that I fixed it. The bad news is that it's not something that 
can really be put in public view :) But the approach is to use asynchronous 
API in JGroups - one of the castMessage() overloads that accepts a 
RspCollector. That way I made the async replication really asynchronous, and 
so far it works without problems :)
-KS




More information about the infinispan-dev mailing list