Advanced Systems Lab - Fall 2019

Course Organization & Materials

Find below the dates and details of tutorials (T) and exercises (E):

Date/Time Type Description Materials
 17. Sep. The first tutorial session will take place on Sept. 17th.  introTR
 19. Sep. The first exercise session will introduce the lab project. (CAB G52)  slides
 24. Sep. The second exercise session will take place in G61 instead of the tutorial. Exercise session will introduce Azure.   slides
 26. Sep. Exercise session on scripting and plotting. (CAB G52)  slides
 1. Oct. T The second tutorial session will take place on Oct. 1st.  slides
 3. Oct.  Exercise session on good and bad practices in Java middleware development.  slides
 8. Oct.  The third tutorial session will take place on Oct. 8th.  slides
 10. Oct. E  Exercise session on baseline measurements.  slides
 15. Oct. T The fourth tutorial session will take place on Oct. 15th.  slides
 17. Oct.  Exercise session on 2k analysis.  slides
 22. Oct. T  The fifth tutorial session will take place on Oct. 22nd.  slides
 24. Oct. E  Exercise session on Queueing theory.  slides
 31. Oct.  Exercise session on Queueing Networks.  slides


Project Details

Project Description: project

Report: report, report.tex

Programming: project-structure

Azure: template

 Project Deadline: Monday 16th December 2019, 17:00


"Art of Computer Systems Performance Analysis" - Raj Jain
John Wiley & Sons Inc; Auflage: 2 Rev ed. (21. September 2015)

"The Art of Computer Systems Performance Analysis" - Raj Jain
Wiley Professional Computing, 1991

From the 1st edition of particular relevance are the following chapters:

  • Chapters 1, 2, 3 (General introduction, Common terminology)
  • Chapters 4, 5, 6 (Workloads)
  • Chapter 10 (Data presentation)
  • Chapters 12, 13, 14 (Probability and statistics)
  • Chapters 16, 17, 18, 20, 21, 22 (Experimental design)
  • Chapters 30, 31, 32, 33, 36 (Queueing theory)


Gustavo Alonso


Kaan Kara

Rodrigo Bruno

Office Hours: Thursdays 17:00-18:30

Course Hours

Tutorials: Tuesday, 17:00 – 19:00, CAB G 61.

Exercises: Thursday, 17:00 - 19:00 CAB G 52.

General Contact: sg-asl [at]


Office Hours

(To be announced later) 





Q: The provided file contains an argument for sharded reads. Do we need to implement shaded reads in the Middleware?

A: No, just ignore this flag, i.e., always set it to false.

Q: How do we perform experiments with multiple servers/middlewares? (Confused by the sentence in the report outline: "All clients are connected to a single memcached instance.")

A: To benchmark multiple servers/middlewares you need to start multiple memtier processes.

Q: How do we implement the 'installShutdownHook' method in if we were told not to modify

A: You can modify to properly implement the shutdown hook.

Q: Memtier configure installation step fails due to a missing ssl library. How should I proceed?

A: Compile Memtier with no ssl support ('./configure --disable-tls').

Q: Are four measurement points enough to reach conclusions about the system?

A: Yes, the given value range is enough to reach meaningful conclusions about the system. The given value range is the only ones that need to be plotted in the report. However, doing more (shorter) experiments to understand the behavior of the system to help with your explanations is encouraged.

Q: In Section 2.3, when selecting maximum throughput, should I consider requests/second or Bytes/second?

A: This is up to you. You need to clearly state which unit you pick when selecting the maximum throughput. The rest of the table has to be filled correspondingly.

Q: Does the title page (containing only the date, name, legi number etc.) count towards 35-page limit?

A: No, it does not.



  • Report Outline: In Section 2.3 of the project description, it is mentioned that students should collect statistics to produce a histogram. Ignore this paragraph as later sections do not ask for such histogram.
  • In the provided file there is a call to Thread.sleep right after the call to install the Shutdown Hook. This Thread.sleep call should be removed.
  • Report Outline: The sentence "All clients are connected to a single memcached instance" has been changed to "Each memtier instance is connected to a single middleware instance." to avoid confusion.
  • Report Outline: In Section 3.1.2, the number of worder threads was wrong (did not match the table). This has been fixed.
  • Report Outline: In Section 2.3, in the table, "Minumum Reponse Time" has been changed to "Corresponding Response Time".