当前位置:问答库>论文摘要

题目:一种可扩展的分布式程序评测引擎的设计与实现

关键词:分布式系统,程序评测,可靠性,性能,负载均衡

  摘要

随着计算机和网络的飞速发展,Web应用逐渐融入到人们日常的工作、学习和生活中。自从ACM/ICPC、IOI等编程竞赛创办以来,国内外在线程序设计竞赛平台层出不穷。实验室在线考试系统用于编程语言课程的练习及考试、各省NOIP选拔赛、NOI竞赛和开放式在线编程练习,系统为考生提供评测服务。原有评测系统是集中式单节点结构,评测时会由于考生程序的异常而影响整个系统运行,另外,在大量考生同时提交时,无法满足快速响应的需求。 为提供具有高可靠性和快速响应的评测服务,本文采用分布式多评测节点的结构来替代以往的集中式结构,将评测部分从原有系统中的分离出来,设计并实现一个分布式评测引擎。本文主要研究评测引擎的扩展性、数据共享策略、可靠性机制和高效的负载均衡算法。评测引擎同过两层评测扩展,提高了处理能力;采用数据分类存储管理和触发更新,保证了数据副本的一致性;定义了消息协议,提供了统一的评测访问接口;引入了重传机制、心跳检测机制和备份机制,保证了评测引擎的可靠性;设计了基于反馈的动态负载均衡算法,使各评测节点达到了负载均衡,进一步提高了系统性能;通过限制考生程序使用系统资源,保证了评测的健壮性,完善了评测功能。此外,本文还设计实现了对评测引擎的监控管理接口。 本文通过对评测引擎可靠性和性能的测试实验得出,系统具有高可靠性,能检测到节点故障和网络故障;通过扩展评测节点可线性提高系统性能;对于一般考试和竞赛的应用,基于反馈的动态负载均衡算法在性能上明显优于其它负载均衡算法。