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