在 TOPC2020 發生 Judge 緩慢的事故之後,發現 DOMJudge 的 Judge 順序似乎不是 FIFO,因此去看了一下 source code,研究了一下相關機制,在這邊寫成一份說明。
Judge 排程
DOMJudge在排 judge queue 的順序並非 FIFO(First In First Out),在研究了相關 source code 之後發現這段 code:https://github.com/DOMjudge/domjudge/blob/7.3/webapp/src/Controller/API/JudgehostController.php#L1204
$queryBuilder = $this->em->createQueryBuilder()
->from(Submission::class, 's')
->join('s.team', 't')
->join('s.language', 'l')
->join('s.contest_problem', 'cp')