Scaling up a Web
Jozsef Patvarczki, Shane Almeida, and Neil Heffernan
Computer Science Department
Our research team has built a web
tutor, located at
that is used by hundreds of students a day in
Worcester and surrounding towns
system’s focus is to teach 8th and 10th grad
mathematics and MCAS preparation.
Accessibility is an important concern for
tutoring systems. Students, teachers, and
content creators all must have access to the
system. Because of widespread Internet
based tutoring systems have the
potential to provide access to many more
users than can be reached with client
We will present how the
Assistment system c
an improve performance
and reliability with a fault
based systems virtually eliminate much of time and cost of
installing software on individual client machines.
We have greater control over content distribution.
Software updates and configuration changes are easily
Data collection is simplified by a centralized system and reports
can be available immediately.
The disadvantage of server
based systems is scalability as
centralization of resources can create bottlenecks.
In order to server thousands of users, we must achieve high
reliability and scalability at different levels.
Two concerns when running the Intelligent Tutor on a central
1) building a scalable server architecture;
2) providing reliable service to researchers, teachers, and
We will answer several research questions:
1) can we reduce the cost of authoring ITS;
2) how can we improve performance and reliability with a
better server architecture.
System Scalability and Reliability
Razzaq, L, Feng, M., Nuzzo
Jones, G., Heffernan, N.T. et. al (2005). The Assistment Project: Blending
Assessment and Assisting.
12th Annual Conference on Artificial Intelligence in
Chunqiang Tang, et. al. (2007). A Scalable Application Placement Controller for Enterprise Data Centers.
Proceedings of the 16
international conference on World Wide Web 2007, Canada
Ruby on Rails, a free Web application framework based
on the open
source Ruby programming language, was used
to create mockups of new interface components.
We reduced the lines of code from roughly 20,000 to
Mongrel, a single
threaded web server for Ruby
applications, is used to serve content. Because it is single
threaded, multiple Mongrel application servers are used
concurrently in a cluster.
During peak times, the database server was constantly at
maximum capacity while the application servers remained
nearly idle waiting for data
According to log data, the tutoring portion of our system
spends an average of 2.27 seconds processing a request
(standard deviation of 3.39)
We calculated the average response time of the most
expensive operations in the tutor.
Most expensive ones: account creation (
welcome page (
Account"), class assignment page
Assignment"), and loading the first problem of an
We captured the average response time of the created test
Average Response Time") and the total
number of users for that particular day (indicated above the
Fourth Generation: Rails with Thicker Client Architecture
The lightweight interface means our software can be
used in schools with limited budgets for computing
Beyond a reasonably modern web browser with
party applications are required to use our system.
With a server
based architecture, all changes in content
and software happen on our systems and we do not
need to push updates to clients.
the tutor, our system spends an average of 0.08 seconds
processing a request (standard deviation of 1.43). With
just six Mongrel servers, our system is now posed to
handle 75 requests per second.
Contact: Neil Heffernan,
Horizontal scaled configuration
tolerant, and Dynamically configurable