Journal Home > Volume 26 , Issue 4

Online Judge (OJ) systems are a basic and important component of computer education. Here, we present MetaOJ, an OJ system that can be used for holding massive programming tests online. MetaOJ is designed to create a distributed, fault-tolerant, and easy-to-scale OJ system from an existing ordinary OJ system by adding several interfaces into it and creating multiple instances of it. Our case on modifying the TUOJ system shows that the modification adds no more than 3% lines of code and the performance loss on a single OJ instance is no more than 12%. We also introduce mechanisms to integrate the system with cloud infrastructure to automate the deployment process. MetaOJ provides a solution for those OJ systems that are designed for a specific programming contest and are now facing performance bottlenecks.


menu
Abstract
Full text
Outline
About this article

MetaOJ: A Massive Distributed Online Judge System

Show Author's information Miao WangWentao HanWenguang Chen( )
Department of Computer Science and Technology, Tsinghua University, Beijing 100084, China.

Abstract

Online Judge (OJ) systems are a basic and important component of computer education. Here, we present MetaOJ, an OJ system that can be used for holding massive programming tests online. MetaOJ is designed to create a distributed, fault-tolerant, and easy-to-scale OJ system from an existing ordinary OJ system by adding several interfaces into it and creating multiple instances of it. Our case on modifying the TUOJ system shows that the modification adds no more than 3% lines of code and the performance loss on a single OJ instance is no more than 12%. We also introduce mechanisms to integrate the system with cloud infrastructure to automate the deployment process. MetaOJ provides a solution for those OJ systems that are designed for a specific programming contest and are now facing performance bottlenecks.

Keywords: online judge, programming test, distributed systems

References(14)

[1]
A. Kurnia, A. Lim, and B. Cheang, Online judge, Comput. Educ., vol. 36, no. 4, pp. 299-315, 2001.
[2]
G. P. Wang, S. Y. Chen, X. Yang, and R. Feng, OJPOT: Online judge & practice oriented teaching idea in programming courses, Eur. J. Eng. Educ., vol. 41, no. 3, pp. 304-319, 2016.
[3]
S. Wasik, M. Antczak, J. Badura, A. Laskowski, and T. Sternal, A survey on online judge systems and their applications, ACM Comput. Surv., vol. 51, no. 1, p. 3, 2018.
[4]
J. H. Wu, S. P. Chen, and R. R. Yang, Development and application of online judge system, presented at 2012 International Symposium on Information Technologies in Medicine and Education, Hokodate, Japan, 2012, pp. 83-86.
[5]
M. A. Revilla, S. Manzoor, and R. J. Liu, Competitive learning in informatics: The UVa online judge experience, Olympiads in Informatics, vol. 2, pp. 131-148, 2008.
[6]
A. Kosowski, M. Malafiejski, and T. Noinski, Application of an online judge & contester system in academic tuition, in Proc. 6th International Conference on Web Based Learning, Edinburgh, UK, 2007, pp. 343-354.
[7]
Y. W. Luo, X. L. Wang, and Z. Y. Zhang, Programming grid: A computer-aided education system for programming courses based on online judge, in Proc. 1st ACM Summit on Computing Education in China on First ACM Summit on Computing Education in China, Beijing, China, 2008, pp. 1-4.
[8]
P. P. Chen, The entity-relationship model—Toward a unified view of data, ACM Transactions on Database, .
[9]
S. Maggiolo and G. Mascellani, Introducing CMS: A contest management system, Olympiads in Informatics, vol. 6, pp. 86-99, 2012.
[10]
[11]
J. Han, H. H. E, G. Le, and J. Du, Survey on NoSQL database, presented at 2011 6th International Conference on Pervasive Computing and Applications, Port Elizabeth, South Africa, 2011, pp. 363-366.
[12]
S. Josefsson, RFC 4648: The base16, base32, and base64 data encodings, https://tools.ietf.org/html/rfc4648, 2006.
[13]
M. Jones, J. Bradley, and N. Sakimura, RFC 7519: JSON Web Token (JWT), https://tools.ietf.org/html/rfc7519, 2015.
[14]
K. Moriarty, B. Kaliski, and A. Rusch, RFC 8018: PKCS #5: Password-based cryptography specification version 2.1, https://tools.ietf.org/html/rfc8018, 2017.
Publication history
Copyright
Rights and permissions

Publication history

Received: 13 May 2020
Accepted: 25 May 2020
Published: 04 January 2021
Issue date: August 2021

Copyright

© The author(s) 2021

Rights and permissions

The articles published in this open access journal are distributed under the terms of the Creative Commons Attribution 4.0 International License (http://creativecommons.org/licenses/by/4.0/).

Return