Just to keep everyone in the loop I thought I would send out a quick
status report of where we are at:
Core:
A bit of time has been spent in the last week ironing out some
performance problems in the core, as the core server was performing
slower than both Grizzly and Jetty.
Several issues were found, and most have been addressed (although not
all fixes have been merged upstream yet). With these fixes we now seem
to be equal to or better than both of these. On my laptop I see us being
at least 10% faster than Jetty for basic servlet, and both Grizzly and
Undertow max out at 140,000 requests a second when using a simple async
handler, which seems to be as much as httperf can drive on my dual core
laptop.
A lot of the problem seems to be that we were doing to many volatile
writes / CAS, so we have changed the threading model slightly so these
can be removed.
Servlet:
I have setup a servlet TCK job on lightning
(
http://lightning.mw.lab.eng.bos.redhat.com/jenkins/job/tck6-as7-undertow-...).
We are passing at around 85% at the moment, and these is still quite a
bit of low hanging fruit, mostly in the form of un-implemented
functionality.
In particular, the main things that are outstanding compliance wise are
Security and JSP.
Security:
Darren has started working on some proof of concept security handlers,
and I am hoping we can flesh these out a lot more and get started on the
servlet integration in the coming weeks.
AS7 Integration:
At the moment the AS7 integration is fairly basic, it allows for servlet
apps to be deployed, and has the ability to configure the listener and
the XNIO worker and that is about it.
A lot of the servlet stuff piggy backs off the existing web subsystem,
and uses the JBoss Metadata merged metadata to bootstrap Undertow.
Because of this all the EE integration is already mostly functional, the
biggest exception being web services which depends on Jboss Web internals.
I don't think there is much point focussing on this just yet, until the
Undertow API is a bit more locked down.
Everything else:
The main outstanding items at the moment as I see it are (not
integration work like web services and clustering):
- Https
- Websockets
- JSP
- AJP
- SPDY
- Reverse Proxy Support
- Transfer coding handlers
- Benchmarking suite
If anyone would like to work on any of these feel free to stick you hand
up.
Stuart