[EMAIL PROTECTED] wrote:
Author: fhanik
Date: Thu Jun 22 12:05:02 2006
New Revision: 416444

URL: http://svn.apache.org/viewvc?rev=416444&view=rev
Log:
Fix so that we don't do a busy read, instead we are properly doing a NIO poller 
wait
This way, we can achieve blocking read, without wasting CPU cycles.
Since we are using Java 5, I will be changing this implementation from using 
synchronized to using the Exchanger, this is also to avoid anyi locks that can 
happen. For example, in the current implementation the poller can call notify 
before we have had a chance to call wait

This is a little bit better (2300 r/s now), but:
- I get some cancelled key exceptions (most likely they could be caught):
22 juin 2006 21:32:38 org.apache.tomcat.util.net.NioEndpoint$Poller events
GRAVE:
java.nio.channels.CancelledKeyException
        at sun.nio.ch.SelectionKeyImpl.ensureValid(Unknown Source)
        at sun.nio.ch.SelectionKeyImpl.interestOps(Unknown Source)
at org.apache.coyote.http11.InternalNioInputBuffer$1.run(InternalNioInputBuffer.java:573) at org.apache.tomcat.util.net.NioEndpoint$Poller.events(NioEndpoint.java:1120) at org.apache.tomcat.util.net.NioEndpoint$Poller.run(NioEndpoint.java:1176)
        at java.lang.Thread.run(Unknown Source)
- I get a problem in the poller thread after a while:
Exception in thread "http-8081-Poller-0" java.lang.NullPointerException
        at sun.nio.ch.WindowsSelectorImpl$FdMap.remove(Unknown Source)
        at sun.nio.ch.WindowsSelectorImpl$FdMap.access$3000(Unknown Source)
        at sun.nio.ch.WindowsSelectorImpl.implDereg(Unknown Source)
        at sun.nio.ch.SelectorImpl.processDeregisterQueue(Unknown Source)
        at sun.nio.ch.WindowsSelectorImpl.doSelect(Unknown Source)
        at sun.nio.ch.SelectorImpl.lockAndDoSelect(Unknown Source)
        at sun.nio.ch.SelectorImpl.select(Unknown Source)
at org.apache.tomcat.util.net.NioEndpoint$Poller.run(NioEndpoint.java:1182)
        at java.lang.Thread.run(Unknown Source)

However, performance without keepalive (no -k) is down.

Rémy

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to