Project

Remote machine spawning in PC2v10

Project (M.S., Computer Science)--California State University, Sacramento, 2017.

PC2v10 is a web-based contest management framework which supports the ability to create and configure contests, control who can participate in defined contests, start/stop contests, and a variety of similar operations. [10] PC2v10 consists of various components like Resource Manager, App Server, Dispatcher, and Checker.
 Resource Manager is one of the primary components of PC2V10 system. The Resource Manager is primarily responsible for creating, starting, stopping, and deleting “machines” running a variety of modules mentioned above. AppServer is responsible for communicating with users (i.e. Teams, Judges, and Contest Administrator). The Dispatcher receives a request from the teams to “run” their submission and it redirects the request to the module (i.e. Checker) which can run the submission. Finally, Checker is the module which is responsible for compiling, executing and validating the submission received from the dispatcher.
 Currently, components like AppServer, Dispatcher, and Checker run on different JVMs but on the same physical machine. This architecture uses the resources and capability of only one system and is not scalable enough to handle many concurrent users.
 Remote machine spawning process can be generalized by having VMware virtual machines and Docker containers. When Resource Manager determines heavy load on any of the system component, it will request for the Docker container depending on the availability.
 Spawning Docker containers instead of different JVMs on the same system presents many advantages. By distributing load across various virtual machines or Docker containers, we can ensure high availability of the system. Also, software failure on any virtual machine doesn’t affect any other virtual machines. By doing this, an increased number of users (Judges, Administrator, and teams) can concurrently use the system and it allows to scale the system very easily than when using physical machines.

PC2v10 is a web-based contest management framework which supports the ability to create and configure contests, control who can participate in defined contests, start/stop contests, and a variety of similar operations. [10] PC2v10 consists of various components like Resource Manager, App Server, Dispatcher, and Checker. Resource Manager is one of the primary components of PC2V10 system. The Resource Manager is primarily responsible for creating, starting, stopping, and deleting “machines” running a variety of modules mentioned above. AppServer is responsible for communicating with users (i.e. Teams, Judges, and Contest Administrator). The Dispatcher receives a request from the teams to “run” their submission and it redirects the request to the module (i.e. Checker) which can run the submission. Finally, Checker is the module which is responsible for compiling, executing and validating the submission received from the dispatcher. Currently, components like AppServer, Dispatcher, and Checker run on different JVMs but on the same physical machine. This architecture uses the resources and capability of only one system and is not scalable enough to handle many concurrent users. Remote machine spawning process can be generalized by having VMware virtual machines and Docker containers. When Resource Manager determines heavy load on any of the system component, it will request for the Docker container depending on the availability. Spawning Docker containers instead of different JVMs on the same system presents many advantages. By distributing load across various virtual machines or Docker containers, we can ensure high availability of the system. Also, software failure on any virtual machine doesn’t affect any other virtual machines. By doing this, an increased number of users (Judges, Administrator, and teams) can concurrently use the system and it allows to scale the system very easily than when using physical machines.

Relationships

Items