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:
-
Is your performance analysis thorough, correct, and clear?
-
Did you test a wide range of functionality, such as failures and recoveries?