You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
recodex-wiki/Submissions-flow.md

72 lines
2.7 KiB
Markdown

# Submissions flow
It's assumed that readers understand [[Architecture]], [[Terminology]], [[Communication]] and [[Assignments Overview]]. This article will describe in detail execution flow of submission from the point of submission into web application to the point of evaluation of results from execution.
## Web Application
First thing user has to submit his/her solution to web application. Generally web application has to store submitted files and hand over all needed information about submission to broker. More detailed description follows:
- user submits his solution to web application
- T
- O
- D
- O
- .
- .
- .
- .
## Broker
Broker gets information about new submission from web application. At this point broker has to find suitable worker for execution of this particular submission. When worker is found and is jobless, then broker send detailed submission to worker to evaluation. More detailed description follows:
- T
- O
- D
- O
- .
- .
- .
## Worker
Worker gets request from broker to evaluate particular submission. Next step is to evaluate given submission and results upload to fileserver. After this worker only send broker that submission was evaluated. More detailed description follows:
- "listening" thread gets multipart message from broker with command "eval"
- "listening" thread hand over whole message through inproc socket to "execution" thread
- "execution" thread now has to prepare all things and get ready for execution
- temporary folders are initated (but not created) this includes folder with source files, folder with downloaded submission, temporary directory for all possible types of files and folder which will contain results from execution
- if some of the above stated folders is already existing, then it's deleted
- after successfull initiation submission archive is downloaded to newly created folder
- submission archive is decompressed into submission files folder
- all files from decompressed archive are copied into evaluation directory which can be used for execution in sandboxes
- all other folders which were not created are created just now
- it's time to build job from configuration
- job configuration file is located in evaluation directory if exists
- ...
## Broker
Broker gets done message from worker and basically only mark submission as done in its internal structures. No messages are send to web application, because of lazy evaluation on frontend side. More detailed description follows:
- T
- O
- D
- O
- .
- .
- .
## Web Application
Only remaining part is evaluation of results. This is provided on demand when user wants them. Results are obtained from fileserver and evaluated. More detailed description follows:
- evaluation of execution results is provided on user demand
- T
- O
- D
- O
- .
- .
- .