2011/1/20  <ma...@apache.org>:
> Author: markt
> Date: Thu Jan 20 18:10:16 2011
> New Revision: 1061433
>
> URL: http://svn.apache.org/viewvc?rev=1061433&view=rev
> Log:
> Add session creation / expiration rate statistics to the session managers
> Adds ~10% to the session creation/destruction process when that is all Tomcat 
> is doing. Should be less overhead with less contention.
>
> Modified:
>    tomcat/tc6.0.x/trunk/STATUS.txt
>    tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/session/DeltaManager.java
>    tomcat/tc6.0.x/trunk/java/org/apache/catalina/session/ManagerBase.java
>    tomcat/tc6.0.x/trunk/java/org/apache/catalina/session/StandardSession.java
>    
> tomcat/tc6.0.x/trunk/java/org/apache/catalina/session/mbeans-descriptors.xml
>    tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml
>
> Modified: tomcat/tc6.0.x/trunk/STATUS.txt
> URL: 
> http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/STATUS.txt?rev=1061433&r1=1061432&r2=1061433&view=diff
> ==============================================================================
> --- tomcat/tc6.0.x/trunk/STATUS.txt (original)
> +++ tomcat/tc6.0.x/trunk/STATUS.txt Thu Jan 20 18:10:16 2011
> @@ -89,16 +89,6 @@ PATCHES PROPOSED TO BACKPORT:
>               We can stall this item until we get some feedback about 7.0.5.
>   -1:
>
> -  rjung: getSessionExpireRate() and getSessionCreateRate() could share a 
> common
> -         implementation (same method body except for the input list). The 
> member
> -          "duration" of SessionTiming does not seem to get used.
> -

> --- 
> tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/session/DeltaManager.java 
> (original)
> +++ 
> tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/session/DeltaManager.java 
> Thu Jan 20 18:10:16 2011
> @@ -40,6 +40,7 @@ import org.apache.catalina.core.Standard
>  import org.apache.catalina.ha.CatalinaCluster;
>  import org.apache.catalina.ha.ClusterMessage;
>  import org.apache.catalina.ha.tcp.ReplicationValve;
> +import org.apache.catalina.session.ManagerBase;
>  import org.apache.catalina.tribes.Member;
>  import org.apache.catalina.tribes.io.ReplicationStream;
>  import org.apache.catalina.util.LifecycleSupport;
> @@ -1286,6 +1287,16 @@ public class DeltaManager extends Cluste
>     public synchronized void resetStatistics() {
>         processingTime = 0 ;
>         expiredSessions = 0 ;
> +        sessionCreationTiming.clear();
> +        while (sessionCreationTiming.size() <
> +                ManagerBase.TIMING_STATS_CACHE_SIZE) {
> +            sessionCreationTiming.add(null);
> +        }
> +        sessionExpirationTiming.clear();
> +        while (sessionExpirationTiming.size() <
> +                ManagerBase.TIMING_STATS_CACHE_SIZE) {
> +            sessionExpirationTiming.add(null);
> +        }

This resetStatistics() is a synchronized method, i.e. synchronizes on
this, but in all other places these linked lists use themselves as the
lock:
  synchronized (sessionCreationTiming) {


resetStatistics() is called from JMX only, so it does not concern
normal operation.


Best regards,
Konstantin Kolinko

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to