DOMjudge / domjudge

DOMjudge programming contest jury system
https://www.domjudge.org
GNU General Public License v2.0
709 stars 248 forks source link

Contest State Persistency #8

Closed eldering closed 10 years ago

eldering commented 10 years ago

The CCS must also support persistence of the contest state once the contest has been started. This means that following a shutdown of the CCS, or a power failure on the machine(s) on which the CCS runs, it must be possible to quickly restore the contest state to what it was prior to the shutdown or power failure. The contest state for purposes of this requirement includes all data regarding submitted runs, submitted clarification requests, answers to clarification requests, run judgements, and similar data defining and/or affecting the standings of the contest.

The CCS must not lose more than 1 minute of contest data on a failure of any part of the contest system.

eldering commented 10 years ago

Imported from trac issue 8. Created by kink on 2011-12-08T21:00:49, last modified: 2011-12-09T23:04:38

eldering commented 10 years ago

Trac comment by eldering on 2011-12-09 23:04:38:

The contest state is stored in the MySQL database and some parts redundantly on the filesystem as well. Power loss results in less than 1 minute of contest data lost: only data in transaction.

DOMjudge has been tested in a failover setup with mirroring MySQL servers. After (controlled) connectivity loss of the primary server, the CSS was fully reachable again within one minute; the largest delay was incurred due to DNS entry TTL timeouts. In another case heartbeat was also used. This provides additional protection against data loss and downtime.