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: [email protected]
For additional commands, e-mail: [email protected]