[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