tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alan Chaney <>
Subject Tomcat podcast server
Date Thu, 03 Apr 2008 14:32:18 GMT
Hi everybody

We've just put into service a set of web applications running under 
tomcat which works as a sophisticated podcast server.

We deliver several thousand podcasts a day of about 20MB to 70MB in 
size. Originally when we started we used an Apache server (because it 
worked... just...) However it was clear to me that this was a poor 
solution for large volumes of traffic -- and I was right!

So I have written a specialized http server which has the following 

1. Adaptive rate-control algorithm which balances the load on a 
per-request basis to optimize the number of simultaneous requests to be 
serviced. The algorithm is 'pluggable'

2. Easy clustering of servers (no session state) to make it scalable.

3. Sophisticated logging to allow the easy generation of detailed 
reports on download activity.

4. JMX management.

5. A black-list scheme to mitigate badly written mulitmedia bots which 
can easily swamp a server.

6. A simple content management system to manage the import of media files.

Although it is originally designed for use with mp3 files, it should 
work with any large media files or data downloads.

The next stage of this project is to add a database controlled ad 
insertion facility which would insert sponsorship messages into the 
outgoing stream on a pre request basis.

We are considering making this an open source project. If people think 
that this would be of interest to them to use, or if they might like to 
join the project, then please email me off-list at the following 
(substitutions obvious)

alan  "A" + "T"  writingshow dot com

So far I have only deployed this on Tomcat, but it is just a set of 
standard servlet 2.5 wars and should work on other containers.

Currently it is running on a dual core opteron. Even at heavy loads the 
CPU utilization is low and it only needs about 100MB of heap to support 
100 simultaneous connections. (which could represent 7GB of download)

It is written using Spring and Hibernate (and a lot of other wonderful 
open source projects)


Alan Chaney

To start a new topic, e-mail:
To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message