CS 677 Distributed Operating Systems

Spring 2011

Programming Assignment 1: Asterix and the Bazaar

Due: 5pm, Friday March 4, 2011



  • A: The problem


  • B. Evaluation and Measurement

    1. Deploy at least 6 peers. They can be setup on the same machine (different directories) or different machines. .
    2. Do a simple experiment study to evaluate the behavior of your system. Compute the average response time per client search request by measuring the response time seen by a client for , say, 1000 sequential requests. Also, measure the response times when multiple clients are concurrently making requests to a peer, for instance, you can vary the number of neighbors for each peer and observe how the average response time changes, make necessary plots to support your conclusions.
    3. Next run some of your peers on a remote Ec2 servers and the rest on local machine(s). Repeat the experiment and comment on how your measurements change due to WAN latencies between some of the peers. Instructions on accessing EC2 servers to run your experiments are here

  • 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 a zip file that you will upload into SPARK.
  • Each program must work correctly and be documented. The zip file you upload to SPARK should contain:
    1. An electronic copy of the output generated by running your program. When it receives a product, have your program print a message "bought product_name from peerID". When a peer issues a query (lookup), having your program print the returned results in a nicely formatted manner.
    2. A seperate 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). You also need to describe clearly how we can run your program - if we can't run it, we can't verify that it works.
    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.

  • D. Grading policy for all programming assignments

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