You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by fh...@apache.org on 2006/03/20 19:38:47 UTC
svn commit: r387274 - in /tomcat/container/tc5.5.x/modules/groupcom:
src/share/org/apache/catalina/tribes/io/ClusterData.java to-do.txt
Author: fhanik
Date: Mon Mar 20 10:38:45 2006
New Revision: 387274
URL: http://svn.apache.org/viewcvs?rev=387274&view=rev
Log:
Created a deepclone method, that performs a deep clone :)
Modified:
tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/io/ClusterData.java
tomcat/container/tc5.5.x/modules/groupcom/to-do.txt
Modified: tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/io/ClusterData.java
URL: http://svn.apache.org/viewcvs/tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/io/ClusterData.java?rev=387274&r1=387273&r2=387274&view=diff
==============================================================================
--- tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/io/ClusterData.java (original)
+++ tomcat/container/tc5.5.x/modules/groupcom/src/share/org/apache/catalina/tribes/io/ClusterData.java Mon Mar 20 10:38:45 2006
@@ -224,6 +224,15 @@
return clone;
}
+ /**
+ * Complete clone
+ * @return ClusterData
+ */
+ public ClusterData deepclone() {
+ byte[] d = this.getDataPackage();
+ return ClusterData.getDataFromPackage(d);
+ }
+
public static boolean sendAckSync(int options) {
return ( (Channel.SEND_OPTIONS_USE_ACK & options) == Channel.SEND_OPTIONS_USE_ACK) &&
( (Channel.SEND_OPTIONS_SYNCHRONIZED_ACK & options) == Channel.SEND_OPTIONS_SYNCHRONIZED_ACK);
Modified: tomcat/container/tc5.5.x/modules/groupcom/to-do.txt
URL: http://svn.apache.org/viewcvs/tomcat/container/tc5.5.x/modules/groupcom/to-do.txt?rev=387274&r1=387273&r2=387274&view=diff
==============================================================================
--- tomcat/container/tc5.5.x/modules/groupcom/to-do.txt (original)
+++ tomcat/container/tc5.5.x/modules/groupcom/to-do.txt Mon Mar 20 10:38:45 2006
@@ -23,6 +23,16 @@
Code Tasks:
===========================================
+30. CookieBasedReplicationMap - a very simple extension to the LazyReplicatedMap
+ but instead of randomly selecting a backup node and then publishing the PROXY to all
+ the other nodes in the group, this will simply
+ read/write a cookie, for a backup location, so the nodes will
+ never know until the request comes in.
+ This is useful in extremely large clusters, and essentially reduces
+ very much of the network chatter, this task is dependent on task25
+ Question to be answered: How does the map know of the cookie?
+ Potential answer: Use a thread local and bind the request/response to it
+
29. Thread pool, shrink dynamically
27. XmlConfigurator - read an XML file to configure the channel.
@@ -41,6 +51,7 @@
- (optional)persistent - writes messages to persistent store first, then starts processing
- Callback error handler - for when messages fail, and the application wishes to become notified
- MUST HAVE A LIMIT QUEUE SIZE IN MB, to avoid OOM errors or persist the queue.
+ - MUST USE ClusterData.deepclone() to ensure thread safety if ClusterData objects get recycled
23. TotalOrderInterceptor - fairly straight forward implementation
@@ -106,7 +117,7 @@
Once it has received state, it will pretty much take itself out of the loop
The benefit of the new ParallelNioSender is that it doesn't require to know about
a member to transfer state, all it has to do is to reply to a message that came in.
- beee-aaaa-uuuu-tiful. state is a one time deal for the entire channel, so a
+ State is a one time deal for the entire channel, so a
session replication cluster, would transfer state as one block, not one per context
14. Keepalive count and idle kill off for Nio senders
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org