CS 677 Distributed Operating Systems

Fall 2009

Programming Assignment 1: Whisper.com: A Centralized Micro-blogging Service

Due: Oct 19, 2009


Links to online resources and FAQ are here
  • A: The problem


  • B. Evaluation and Measurement

    1. Compute the average response time for each whisp by measuring the response time seen by a client for , say, 1000 sequential post requests. Also, measure the response times when multiple clients are concurrently making requests to the system, for instance, you can vary the number of clients and observe how the average response time changes. Some of these request can have incorrect arguments, in which case an error message should be printed and an error returned to the client process.
    2. Following the idea shown above, compute the average response time for retrieve requests.
    3. Design a test to show how the number of concurrent retrievals requests affects the query retrieval times at the database.
    4. Make necessary plots to support your conclusions.


  • C. What you will submit

  • When you have finished implementing the complete assignment as described above, you will submit your solution in the form of printouts.

  • Each program must work correctly and be documented. You should hand in:
    1. A copy of the output generated by running your program. When it receives a whisp, have your program print a message "whisp post @username, #topic, comment ". When a client issues a follow, unsubscribe or retrieve requests, having your program print the returned results in a nicely formatted manner.
    2. A seperate (typed) document of approximately two pages describing the overall program design, a description of "how it works", and design tradeoffs considered and made. Also describe possible improvements and extensions to your program (and sketch how they might be made).
    3. A program listing containing in-line documentation.
    4. A seperate description of the tests you ran on your program to convince yourself that it is indeed correct. Also describe any cases for which your program is known not to work correctly.
    5. Performance results.
    6. A readme file about how to run your code on EDLAB machines.
    7. After you turn in all the stuff mentioned above, please also send TA an email telling the location of your files.
  • Let us not waste a lot of trees. So, if any of the above turn out to be large, just save the relevant information in a file, leave it on your EDLAB account and submit the name of the file.

  • D. Grading policy for all programming assignments

    1. Program Listing
        works correctly ------------- 50%
        in-line documentation -------- 15%
    2. Design Document
        quality of design ------------ 15%
        understandability of doc ------- 10%
    3. Thoroughness of test cases ---------- 10%
    4. Grades for late programs will be lowered 12 points per day late.