Clustering VPL server

Clustering VPL server

by Yedidia Klein -
Number of replies: 1
Picture of Plugin developers

Hi all, 

Is there a way to have more that one VPL server to serve the users for load balancing and redundancy ?

If I'll create two servers and wiil balancing access to them - there is a chance that moodle will not connect to the same machine that the user browser connects...

Any experience with that ? Documentation ?


tnx a lot,

 

Average of ratings: -
In reply to Yedidia Klein

Re: Clustering VPL server

by Juan Carlos Rodríguez-del-Pino -
Picture of Particularly helpful Moodlers Picture of Plugin developers
I am not an expert in load balancing configuration but I think that with the network architecture of VPL it may be difficult to use an "execution server" load balancer.
Notice that the execution process takes different steps and requires different network connections that need to be established with the same server in the cluster.
For example, the evaluation process takes these steps.
1) A user launches an evaluation process. e.g. the user clicks evaluate button.
2) The browser sends a request (AJAX/JSON) to the Moodle server.
3) The Moodle server selects an execution server (with retries) and sends the task to an execution server (HTTP/XMLRPC). The execution server generates different security tokens as a response to de request. The task start.
4) The Moodle server responds to the Browser request with information with the "execution server URL" and the security tokens.
5) The browser connects with the execution server using the URL+security token and the "WebSocket" protocol to monitor the task.
6) When the task end, the monitor sends a request (AJAX/JSON) to the Moodle server to retrieve the task report/result.
8) The Moodle server request the "execution server" the task result (HTTP/XMLRPC) with the security token, save it and return the result to the browser.
9) The browser shows the result.

In the case of interactive execution, steps 6-9 are replaced with another WebSocket connection to the input/output of the task running in the server showing results/getting keyboard input in the browser.
If you get running the load-balanced system, please let us know.

Best regards,
Juan Carlos.