Phase V: Performance Tuning

Due: Last day of classes, Thursday, May 5.  (also see below!)

General Instructions. A one week automatic extension is available, until Thursday May 12.  However, that's the absolute final date for handing in this assignment.

Background: Performance

The solution to phase IV ignored performance issues.  Our goal in Phase V is to tune the heck out of the solution from Phase IV, evaluate performance of the various mechanisms in use (client-server protocol, server-to-server protocols), replace anything conspicuously poor with an improved version, and finally to report on the performance and scalability of your replicated banking system.  As part of this you should implement a load-balancing mechanism to spread the load associated with operations, where practical. We're interested in the rate of operations per second that can be handled by a branch server using replication (not logging), the impact of adding members to the cluster (only if you are using process group replication), and the delays associated with failures or recoveries. 

Basically, we would like you to get a clear sense of the performance bottlenecks in your system (both before you start phase 5 and after you finish phase 5) , i.e., which parts of your system are worth tweaking/replacing so as to gain non-trivial performance advantages across the entire system.

What to Build

The assumptions for this phase are the same as for Phase IV.

To evaluate performance you will need to build your own "test harness" that subjects the system to an artificial load.  You'll need to collect the data obtained from the experiments and then use a graphical program like Excel to make elegant graphs showing the impact of load on performance and also, ideally, giving some breakdowns of how time is actually spent.  However, Visual Studio lacks tools like the Linux "gprof" tool and to do detailed breakdowns you may need to download a profiler from the Web.  Since this is not a small matter, we won't require that sort of detail.

Submission Procedure. The usual.  This time we would like a written report, memo style, about 4 or 5 pages in length explaining what you measured, how you did it, and what you found.

Grading. Your grade will be based on the following elements: