You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by re...@apache.org on 2014/06/18 11:03:37 UTC
svn commit: r1603376 - in /tomcat/trunk:
java/org/apache/tomcat/util/net/Nio2Endpoint.java
java/org/apache/tomcat/util/net/NioEndpoint.java webapps/docs/changelog.xml
Author: remm
Date: Wed Jun 18 09:03:37 2014
New Revision: 1603376
URL: http://svn.apache.org/r1603376
Log:
- Fix apparent issues for caches configuration (socket properties is likely not set yet, and the channel pool size was not using the right property).
- Still not convinced about the usefulness of these caches even if raw benchmarks could show some slight improvements, so keep them disabled in NIO2.
Modified:
tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java
tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java
tomcat/trunk/webapps/docs/changelog.xml
Modified: tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java?rev=1603376&r1=1603375&r2=1603376&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/Nio2Endpoint.java Wed Jun 18 09:03:37 2014
@@ -111,23 +111,17 @@ public class Nio2Endpoint extends Abstra
/**
* Cache for SocketProcessor objects
*/
- private final SynchronizedStack<SocketProcessor> processorCache =
- new SynchronizedStack<>(SynchronizedStack.DEFAULT_SIZE,
- socketProperties.getProcessorCache());
+ private SynchronizedStack<SocketProcessor> processorCache;
/**
- * Cache for key attachment objects
+ * Cache for socket wrapper objects
*/
- private final SynchronizedStack<Nio2SocketWrapper> socketWrapperCache =
- new SynchronizedStack<>(SynchronizedStack.DEFAULT_SIZE,
- socketProperties.getSocketWrapperCache());
+ private SynchronizedStack<Nio2SocketWrapper> socketWrapperCache;
/**
* Bytebuffer cache, each channel holds a set of buffers (two, except for SSL holds four)
*/
- private final SynchronizedStack<Nio2Channel> nioChannels =
- new SynchronizedStack<>(SynchronizedStack.DEFAULT_SIZE,
- socketProperties.getBufferPoolSize());
+ private SynchronizedStack<Nio2Channel> nioChannels;
// ------------------------------------------------------------- Properties
@@ -356,6 +350,15 @@ public class Nio2Endpoint extends Abstra
createExecutor();
}
+ if (useCaches) {
+ processorCache = new SynchronizedStack<>(SynchronizedStack.DEFAULT_SIZE,
+ socketProperties.getProcessorCache());
+ socketWrapperCache = new SynchronizedStack<>(SynchronizedStack.DEFAULT_SIZE,
+ socketProperties.getSocketWrapperCache());
+ nioChannels = new SynchronizedStack<>(SynchronizedStack.DEFAULT_SIZE,
+ socketProperties.getBufferPool());
+ }
+
initializeConnectionLatch();
startAcceptorThreads();
Modified: tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java?rev=1603376&r1=1603375&r2=1603376&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java Wed Jun 18 09:03:37 2014
@@ -127,30 +127,22 @@ public class NioEndpoint extends Abstrac
/**
* Cache for SocketProcessor objects
*/
- private final SynchronizedStack<SocketProcessor> processorCache =
- new SynchronizedStack<>(SynchronizedStack.DEFAULT_SIZE,
- socketProperties.getProcessorCache());
+ private SynchronizedStack<SocketProcessor> processorCache;
/**
* Cache for key attachment objects
*/
- private final SynchronizedStack<KeyAttachment> keyCache =
- new SynchronizedStack<>(SynchronizedStack.DEFAULT_SIZE,
- socketProperties.getKeyCache());
+ private SynchronizedStack<KeyAttachment> keyCache;
/**
* Cache for poller events
*/
- private final SynchronizedStack<PollerEvent> eventCache =
- new SynchronizedStack<>(SynchronizedStack.DEFAULT_SIZE,
- socketProperties.getEventCache());
+ private SynchronizedStack<PollerEvent> eventCache;
/**
* Bytebuffer cache, each channel holds a set of buffers (two, except for SSL holds four)
*/
- private final SynchronizedStack<NioChannel> nioChannels =
- new SynchronizedStack<>(SynchronizedStack.DEFAULT_SIZE,
- socketProperties.getBufferPoolSize());
+ private SynchronizedStack<NioChannel> nioChannels;
// ------------------------------------------------------------- Properties
@@ -414,6 +406,15 @@ public class NioEndpoint extends Abstrac
createExecutor();
}
+ processorCache = new SynchronizedStack<>(SynchronizedStack.DEFAULT_SIZE,
+ socketProperties.getProcessorCache());
+ keyCache = new SynchronizedStack<>(SynchronizedStack.DEFAULT_SIZE,
+ socketProperties.getKeyCache());
+ eventCache = new SynchronizedStack<>(SynchronizedStack.DEFAULT_SIZE,
+ socketProperties.getEventCache());
+ nioChannels = new SynchronizedStack<>(SynchronizedStack.DEFAULT_SIZE,
+ socketProperties.getBufferPool());
+
initializeConnectionLatch();
// Start poller threads
Modified: tomcat/trunk/webapps/docs/changelog.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1603376&r1=1603375&r2=1603376&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Wed Jun 18 09:03:37 2014
@@ -197,6 +197,9 @@
HTTP connector and ensure that access log entries generated by error
conditions use the correct request start time. (markt)
</fix>
+ <fix>
+ Improve configuration of cache sizes in the endpoint. (markt)
+ </fix>
</changelog>
</subsection>
<subsection name="Jasper">
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org