[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