tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ma...@apache.org
Subject svn commit: r471306 - in /tomcat/container/tc5.5.x: catalina/src/share/org/apache/catalina/session/StandardSession.java webapps/docs/changelog.xml
Date Sun, 05 Nov 2006 00:33:03 GMT
Author: markt
Date: Sat Nov  4 16:33:02 2006
New Revision: 471306

URL: http://svn.apache.org/viewvc?view=rev&rev=471306
Log:
Fix bug 37356. I know concern has been expressed about using syncs here.
I have tested the impact of using syncs with both an artificial test case that just calls
access() followed by endAccess() on the StandardSession object and with JMeter using different
numbers of threads to make a request in the same session.
For the single thread case:
- JMeter impact was negligible.
- With the wrapper, it was about 150 nanoseconds per request which explains why the JMeter
test didn't shown anything.
For two threads:
- JMeter impact was about 9 microseconds (0.4%) per request
- The wrapper was much higher at 50 milliseconds but this is expected given the nature of
the test is such that far more contention than normal will be seen
For five threads
- JMeter impact was about 75 microseconds (4%) per request

My conclusion is that the uncontended impact is negligible and the contended impact is sufficiently
low for syncs to be acceptable.

Obviously, these figures are for my hardware but it is fairly standard so the figures should
be typical.

Modified:
    tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/session/StandardSession.java
    tomcat/container/tc5.5.x/webapps/docs/changelog.xml

Modified: tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/session/StandardSession.java
URL: http://svn.apache.org/viewvc/tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/session/StandardSession.java?view=diff&rev=471306&r1=471305&r2=471306
==============================================================================
--- tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/session/StandardSession.java
(original)
+++ tomcat/container/tc5.5.x/catalina/src/share/org/apache/catalina/session/StandardSession.java
Sat Nov  4 16:33:02 2006
@@ -275,6 +275,7 @@
      */
     protected transient int accessCount = 0;
 
+    private Object lock = new Object();
 
     // ----------------------------------------------------- Session Properties
 
@@ -611,7 +612,9 @@
 
         evaluateIfValid();
 
-        accessCount++;
+        synchronized (lock) {
+            accessCount++;
+        }
 
     }
 
@@ -622,7 +625,9 @@
     public void endAccess() {
 
         isNew = false;
-        accessCount--;
+        synchronized (lock) {
+            accessCount--;
+        }
 
     }
 

Modified: tomcat/container/tc5.5.x/webapps/docs/changelog.xml
URL: http://svn.apache.org/viewvc/tomcat/container/tc5.5.x/webapps/docs/changelog.xml?view=diff&rev=471306&r1=471305&r2=471306
==============================================================================
--- tomcat/container/tc5.5.x/webapps/docs/changelog.xml (original)
+++ tomcat/container/tc5.5.x/webapps/docs/changelog.xml Sat Nov  4 16:33:02 2006
@@ -62,6 +62,9 @@
         StandardWrapper. (markt)
       </fix>
       <fix>
+        <bug>37356</bug>: Ensure sessions time out correctly. (markt)
+      </fix>
+      <fix>
         <bug>40528</bug>: Add missing message localisations as provided by
         Ben Clifford. (markt)
       </fix>



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


Mime
View raw message