Author: kfujino Date: Tue Jan 20 02:07:41 2015 New Revision: 1653181 URL: http://svn.apache.org/r1653181 Log: Copy node does not need to send the entry data. It is enough to send only the node information of the entry.
Modified: tomcat/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java Modified: tomcat/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java?rev=1653181&r1=1653180&r2=1653181&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java (original) +++ tomcat/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java Tue Jan 20 02:07:41 2015 @@ -695,6 +695,14 @@ public abstract class AbstractReplicated } } } + + if (mapmsg.getMsgType() == MapMessage.MSG_NOTIFY_MAPMEMBER) { + MapEntry<K, V> entry = innerMap.get(mapmsg.getKey()); + if (entry != null) { + entry.setBackupNodes(mapmsg.getBackupNodes()); + entry.setPrimary(mapmsg.getPrimary()); + } + } } @Override @@ -929,8 +937,12 @@ public abstract class AbstractReplicated val.setOwner(getMapOwner()); } } else if ( entry.isCopy() ) { - // TODO no need to send the entry data. - backup = publishEntryInfo(key, entry.getValue()); + backup = getMapMembers(); + if (backup.length > 0) { + msg = new MapMessage(getMapContextName(), MapMessage.MSG_NOTIFY_MAPMEMBER,false, + (Serializable)key,null,null,channel.getLocalMember(false),backup); + getChannel().send(backup, msg, getChannelSendOptions()); + } } entry.setPrimary(channel.getLocalMember(false)); entry.setBackupNodes(backup); @@ -1319,6 +1331,7 @@ public abstract class AbstractReplicated public static final int MSG_COPY = 9; public static final int MSG_STATE_COPY = 10; public static final int MSG_ACCESS = 11; + public static final int MSG_NOTIFY_MAPMEMBER = 12; private final byte[] mapId; private final int msgtype; @@ -1357,6 +1370,7 @@ public abstract class AbstractReplicated case MSG_STATE_COPY: return "MSG_STATE_COPY"; case MSG_COPY: return "MSG_COPY"; case MSG_ACCESS: return "MSG_ACCESS"; + case MSG_NOTIFY_MAPMEMBER: return "MSG_NOTIFY_MAPMEMBER"; default : return "UNKNOWN"; } } --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org