UCL-INGI / INGInious

INGInious is a secure and automated exercises assessment platform using your own tests, also providing a pluggable interface with your existing LMS.
http://www.inginious.org
Other
207 stars 140 forks source link

[low] Allow to set a submission limit only if there is a queue #903

Open tbarbette opened 1 year ago

tbarbette commented 1 year ago

Is your feature request related to a problem? Please describe. I had to set a limit of submissions to stay fair between students when a lot of them submit, but then when there's not much submissions the servers are underloaded.

Describe the solution you'd like Especially for restricted environments where only a specific inginious agent can serve the request, it would be nice to set the limit of submission only when there is currently a queue. Else students can submit as much as they want.

Describe alternatives you've considered Maybe an alternative would be to give a way to describe the priorities to be applied. Probably harder though... For instance, WRR between courses (weight being the number of students), which would be set by the admins. Then inside the course by the teacher : like the number of submission in the last 24 hours from the student, then resubmissions?

anthonygego commented 1 year ago

Applying submission limit based on infrastructure conditions, and therefore on the time students are working, is unfair. In the one hand, people that are able to work during the quiet time of day will get an advantage. In the other hand, based on my very own experience sharing an undersized server, this will incitate students to work during the night if the load is high all day or if they can't work during quiet times. Taking into consideration that a loaded agent may serve more than one task only makes this even more complicated.

WRR, priorities, and therefore playing on the scheduling, is a more interesting track, as it won't refuse submissions but will change the processing order and the time the feedback is provided. A first and cheap implementation with the existing code can be to decrease job priority proportionnally to the amount of submissions a student has mode for a task in a certain time window.