You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by kf...@apache.org on 2015/01/20 03:07:42 UTC
svn commit: r1653181 -
/tomcat/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java
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-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org