[jbosscache-issues] [JBoss JIRA] Updated: (JBCACHE-1564) Using asynchronous API of JGroups for asynchronous replication
Krzysztof Sobolewski (JIRA)
jira-events at lists.jboss.org
Fri Jan 15 05:19:35 EST 2010
[ https://jira.jboss.org/jira/browse/JBCACHE-1564?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Krzysztof Sobolewski updated JBCACHE-1564:
------------------------------------------
Attachment: GroupRequest.diff
The changes to the "hacked" GroupRequest class.
> Using asynchronous API of JGroups for asynchronous replication
> --------------------------------------------------------------
>
> Key: JBCACHE-1564
> URL: https://jira.jboss.org/jira/browse/JBCACHE-1564
> Project: JBoss Cache
> Issue Type: Patch
> Security Level: Public(Everyone can see)
> Components: Replication
> Affects Versions: 3.2.1.GA
> Reporter: Krzysztof Sobolewski
> Assignee: Manik Surtani
> Attachments: async-replication.patch, GroupRequest.diff
>
>
> As I mentioned on Infinispan list, I run into some problems with NBST and asynchronous replication. Quoting my message:
> ***
> 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 fix in the attached patch creates a new class, AsynchronousRpcDispatcher, and makes CommandAwareRpcDispatcher extend it. The new class adds a new variant of castMessage() method - castMessageAsync(). I takes a ScheduledExecutorService where it schedules a timeout task, and a "closure" callback object, an implementation of AsyncCallback interface, which is invoked when the replication task is complete. "Completion" also means a timeout, in which case the callback is invoked with whatever responses were received.
> One thing I had to do was to "hack" the GroupRequest class from JGroups to expose responsesComplete() method. I just copied it and did the necessary modification, diff of which is also attached. The method I needed is used to check whether the received responses are enough to complete the request.
> There are also some minor stylistic tweaks in the patch unrelated to the real thing.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jbosscache-issues
mailing list