[infinispan-commits] Infinispan SVN: r1414 - in trunk/core: src/main/java/org/infinispan/remoting/transport/jgroups and 1 other directory.
infinispan-commits at lists.jboss.org
infinispan-commits at lists.jboss.org
Wed Jan 27 05:00:11 EST 2010
Author: manik.surtani at jboss.com
Date: 2010-01-27 05:00:11 -0500 (Wed, 27 Jan 2010)
New Revision: 1414
Modified:
trunk/core/pom.xml
trunk/core/src/main/java/org/infinispan/remoting/transport/jgroups/CommandAwareRpcDispatcher.java
Log:
* Upgraded to JGroups 2.9.0.Beta1
* Use NO_FC flag when sending sync messages
* Marshall call only if there are recipients! (Edge case optimisation)
Modified: trunk/core/pom.xml
===================================================================
--- trunk/core/pom.xml 2010-01-26 15:02:09 UTC (rev 1413)
+++ trunk/core/pom.xml 2010-01-27 10:00:11 UTC (rev 1414)
@@ -18,7 +18,7 @@
<properties>
<version.jboss.common.core>2.2.14.GA</version.jboss.common.core>
<version.jboss.marshalling>1.2.0.GA</version.jboss.marshalling>
- <version.jgroups>2.9.0.Alpha8</version.jgroups>
+ <version.jgroups>2.9.0.Beta1</version.jgroups>
<version.jta>1.0.1.GA</version.jta>
<version.org.jboss.naming>5.0.3.GA</version.org.jboss.naming>
<version.rhq.pluginAnnotations>1.4.0.B01</version.rhq.pluginAnnotations>
Modified: trunk/core/src/main/java/org/infinispan/remoting/transport/jgroups/CommandAwareRpcDispatcher.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/remoting/transport/jgroups/CommandAwareRpcDispatcher.java 2010-01-26 15:02:09 UTC (rev 1413)
+++ trunk/core/src/main/java/org/infinispan/remoting/transport/jgroups/CommandAwareRpcDispatcher.java 2010-01-27 10:00:11 UTC (rev 1414)
@@ -227,12 +227,15 @@
Message msg = new Message();
msg.setBuffer(buf);
if (oob) msg.setFlag(Message.OOB);
- if (mode != GroupRequest.GET_NONE) msg.setFlag(Message.DONT_BUNDLE);
+ if (mode != GroupRequest.GET_NONE) {
+ msg.setFlag(Message.DONT_BUNDLE);
+ msg.setFlag(Message.NO_FC);
+ }
if (recipient != null) msg.setDest(recipient);
return msg;
}
- public RspList call() throws Exception {
+ private Buffer marshallCall() {
Buffer buf;
try {
buf = req_marshaller.objectToBuffer(command);
@@ -240,7 +243,11 @@
catch (Exception e) {
throw new RuntimeException("Failure to marshal argument(s)", e);
}
+ return buf;
+ }
+ public RspList call() throws Exception {
+
// Replay capability requires responses from all members!
int mode = supportReplay ? GroupRequest.GET_ALL : this.mode;
@@ -251,13 +258,14 @@
if (filter != null) mode = GroupRequest.GET_FIRST;
RspList retval = null;
-
+ Buffer buf;
if (broadcast || FORCE_MCAST) {
RequestOptions opts = new RequestOptions();
opts.setMode(mode);
opts.setTimeout(timeout);
opts.setRspFilter(filter);
opts.setAnycasting(false);
+ buf = marshallCall();
retval = castMessage(dests, constructMessage(buf, null), opts);
} else {
Set<Address> targets = new HashSet<Address>(dests); // should sufficiently randomize order.
@@ -266,6 +274,8 @@
opts.setTimeout(timeout);
targets.remove(channel.getAddress()); // just in case
+ if (targets.isEmpty()) return new RspList();
+ buf = marshallCall();
// if at all possible, try not to use JGroups' ANYCAST for now. Multiple (parallel) UNICASTs are much faster.
if (filter != null) {
More information about the infinispan-commits
mailing list