| CS290I - Scalable Internet Services and Systems | |
|
Thorsten von Eicken - UCSB - Spring 2001 |
|
In this project you will run your stock trading site on three front-end machines, all using the same database on bugatti (4th machine). We will load-balance incoming requests round-robin to your 3 servers. Provide the best performance you can, and make your service resilient to server and machine failures (i.e. we will kill your processes and/or halt the machines).
The test configuration for your service will be as follows:
| hosts | type | function |
| lotus, bentley, daimler | Solaris E450 2-cpu | apache + servlet engine |
| bugatti | Solaris E450 2-cpu | mysql database |
| roadrunner | FreeBSD | load balancer |
| porsche, corvette, maserati | Solaris Ultra-30 | load generators |
Your system must commit each trade entered into the web site to persistent store, i.e. the database on bugatti, before returning the HTTP response. That is, if all three web servers failed simultaneously, all orders for which a response was received before the crash must be stored in one form or another in the database.
We will provide the following test aids:
We will benchmark your system under the following conditions:
Each of the benchmarks will have requests for quotes in addition to the stock trading requests. Probably around 4x to 10x as many quote requests as trading requests.
With each benchmark we will verify that all the trades were executed correctly and we will measure the total time taken to execute the trades.
The write-up should expand on the write-up of project 3. The write-up should contain the following sections:
Overall, keep it brief, and focus on the description of the distribution and failure handling.
Thursday May 31st, after class: we will perform an initial round of benchmarking. This will give you an initial idea of what to expect.
Thursday June 7th, after class: we will perform the real benchmarking. At this point your system must perform well on the first 3 benchmarks (i.e. those without failure scenarios).
Tuesday June 12th, morning: we will perform a catch-up round of benchmarking, running the failure test on any systems that failed it during the 2nd round. Project write-ups are due by noon in the class homework box.
Neither Josep nor Thorsten will be around after June 12th, so that will be the final deadline!