Scalability in Database Driven Sites - Performance
Ok, I am putting together a proposal for my local school system. Students are required to complete a request numbers of Student Service Learning (SSL... irritating i know) hours before graduation, a pretty common system. Currently this entire massive system is managed via carbon copies of forms filled out and filed by hand....
the system houses some 150,000 students
so I proposed creating an online form linked to a database, a pretty simple task, a one page submission, which then sends an e-mail to the supervisor of the service asking for confirmation. Follow the link, digital signature, 'you must be who you say you are etc etc' and badda-bing-badda-boom.
The first thought was the obvious php/apache/mysql, I started mapping out the site and designing the database. Quickly I realized that while the throughput on any normal day will remain in the reasonable zone, the last day before all submissions are due, the system will face thousands of simultaneous sessions. Which is basically going to require load balancing to some degree, especially because this would be tested on older hardware before migration to high end servers.
I then looked into Tomcat/Jakarta which seems to be the most viable option (but I may be biased because of my strong background in Java) linked to a mysql server. It looks feasible, but Java is not known for performance in the application world. While a cgi in something like C might be good with the resources, this need to be something maintained. And the admins handling it don't want C.
In short, what free web technology and database pair will scale the best to something of this size? Has anyone worked on something of a similar scale and know where performance pitfalls will occur? In general.. any advice on how to tackle this?