Project 4 - Personal Web and Video Server§

  • Read the Project Handout.

  • Check your group registration

  • Help Session:

  • Submissions instructions are here.

  • The Git repository for the base code is at https://git.cs.vt.edu/cs3214-staff/pserv

  • How to compare to a reference implementation:

    You may run testloginapi.sh and observe the transactions that take place during login/logout. Then, change the script to point it at your server.

  • How to run the provided unit tests:

    Use the program server_unit_test_pserv.py in ~cs3214/bin.

  • Project 4 FAQ

  • Project 4 Scoreboard

    • Run rules:

      • You must use the same executable that passes the correctness tests.

      • Your executable should be tuned to run on one of the regular 32-core rlogin nodes

      • Use an unloaded machine (check load average with uptime) - the driver will not do that.

      • You must test over an actual Ethernet connection. Our nodes have a 10Gbps backplane.

    • Thus, the test script involves 2 steps: find one machine on which to run your server. Run server_bench.py without a URL. This will set up a root directory for your server, copy files into it, and start it.

    • Then, run server_bench.py on a second machine, pointing it to your server on the first. The second machine should not be overloaded, but our benchmarking program is powerful enough that the 2nd machine need not be entirely idle.

    • You should test all 5 tests without restarting your server. However, if one test crashes your server, you may exclude it by specifying the others using the -t option, e.g. -t login40,doom100.

    • Logging is not required (this is somewhat unrealistic). To facilitate that, the driver will pass the -s (silent) flag to your server. You may use this flag to suppress output to standard out.

    • To share your results with others, use sspostresults.py.