在2004年西安交大现场赛上,由于选手提交过于密集造成系统崩溃,导致比赛无法正常进行。造成了不良影响;在2006年清华赛区举办的网络赛中,也由于服务器压力过大,出现一个小时的系统崩溃,导致大量参赛学校抗议,不得不举办一场现场复活赛作为补救;而在最近的2009年和2010年的中国区域赛中,都由于用户交题过于密集,服务器来不及判题,然后很多的判题请求堆积。最后导致服务器瘫痪,比赛选手无法正常的访问、交题。
目前,南京理工大学OnlineJudge判题节点用的是几台pc,当有密集的提交的时候,会导致判题慢,并且当判题节点崩溃之后,只能通过手工重启才能继续判题。这样不仅用户体验比较差,而且会影响比赛的公平性(会导致用户交很多错误相同的代码,增加罚时)。
如果使用云服务,把各判题节点以云计算技术搭建起来,并且在一定程度上以用户的机器来判题,那么在大量判题提交来临的时候,我们可以选择性的把判题任务分发到不同的节点上,从而达到缓解服务器压力的目的。
于是,本次研究的系统就诞生了,它能及时处理密集的提交,给出判题的结果,并且不会由于某些原因导致瘫痪,或者停止服务。
然而不幸的是,该判题系统依然存在以下的一些问题:
1、 随着南京理工大学Online Judge服务器端判题系统的升级和维护不完善,一些原来系统中使用的接口已经被废弃或者说被删除。这导致该判题系统实际上已经不可用。
2、 由于原有系统中好多地方编写的不够灵活,导致该系统无法在上游服务器增加服务内容后保持同步。
3、 原有的判题系统只是轮换式的使用不同的闲置机器进行判题工作,并没有对资源进行一定程度的优劣划分。这就造成对于不同的客户机,由于性能不同而导致的服务质量不同无法进行调度。从而造成比赛的不公平。源:自~优尔·论`文'网·www.youerw.com/
4、 对于服务器可见的一些密文信息,由于客户端也存在一些服务器端所要进行的判题工作,而这些密文信息对于客户端来说加密也不够严谨。
5、 针对大量数据进行的缓存技术做的不够充分,导致每次客户机处理问题都要从服务器机器提取数据,导致大量网络带宽的占用而引起网络延迟,由此导致的问题可能反而使服务质量下降。
3 架构解析
3.1 应用环境分析
整个软件的设计思路是与云计算的概念相结合,使用软件即服务的云计算模型,实现一个轻量级的网上判题云服务,是云计算的一个具体的实例应用。
云节点协同工作若干问题的研究(6):http://www.youerw.com/jisuanji/lunwen_72345.html