CSE 8330 Spring 2001

PROJECT 1 Definition – Due 4/10/01

Videotape students DUE 4/24/01

This project is to be performed individually. You have a choice of two projects. By 2/15, please let Dr. Dunham know what your project will be. Alternative projects will be considered as will projects which combine Projects 1 and 2. Grading is based on 100 points, and the total project is worth 30% of your grade.

You must choose one of the following alternative projects:

Alternative A is to run simulation experiments using any simulation tool of your choice (C, C++, CSIM, etc.) to answer the following question:

Is Two-Phase Commit (2PC) an appropriate commit strategy for a Mobile Transaction?

The client-server model is a typical one used for distributed systems. A simple Mobile Computing (MC) environment can be developed based on this model. Instead of a wired link between client and server, there exists a wireless link between them. The database issues in the client-server model need to be reconsidered, by taking into account the unique properties of the wireless link (disconnection and speed). Assume that a mobile transaction is issued from a Mobile Unit (MU) and executed on a server on the fixed network. For simplicity, you may assume one server and one client with no MU movement.

To answer this question, you are to do the following. (Grading is shown in parentheses):

  1. Write a brief description (two pages) of two phase-commit and how it could be implemented in the MC environment. (5 pts)
  2. Do a brief literature search investigating other commit strategies which have been proposed for commit processing in the MC environment. This writeup should be about 3 pages in length and must contain references to about 5-10 articles. (10 pts)
  3. From those techniques surveyed in step 2, identify one which will be used in your simulation experiments to compare to 2PC. Indicate in a brief (one paragraph) writeup why you have chosen this technique. (5 pts)
  4. Develop and describe (two pages) a simulation model, including architectural description and parameters used, to model the mobile computing architecture. (15 pts) Your model should include the following:
  • Server: CPU, buffer size, disk.
  • Client: CPU, cache size, disk, cache hit rate.
  • Network: downlink, uplink bandwidth, disconnect rate
  1. Develop and describe (one page) approach to be used to model transactions. Base your approach on methods that have been used in the literature and include reference to these in your writeup. (10 pts)
  2. Run simulation studies based on your model. Include the following in your project:
  • Simulation code and output of executions. (20 pts)
  • List and describe the metrics you have chosen to collect so that the question can be answered. (10 pts)
  1. Write a summary (about five pages) describing simulation results and answering the question. (25 pts)

Alternative 2 is to give you experience writing and designing distributed database applications. You will be required to use Oracle (or relational DBMS of your choice), SQL, and JDBC. You should already be familiar with Oracle and SQL. You must choose a system to implement – including relations and applications. You may make up this set of data or obtain it from any source. Restrictions on this implementation include: at least 3 relations (each with at least 100 tuples), at least 5 applications (at least two involving joins and at least two updates), and at least two sites. Using fragmentation/replication techniques discussed in class, determine how to place the relations on a distributed platform. The applications are to be distributed among the sites. You are required to populate your own relations using any technique of your choice. You are then to run experiments by executing your applications under three choices of distribution. Initially your applications are to be executed from one site. Subsequent experiments should examine performance under at least two other execution strategies. You are then to compare the performance among these three implementations.

To complete the project, you are to do the following:

  1. Write a brief description (two pages) of your data and applications. This should include the actual data values to be used and how the relations will be populated. (5pts)
  2. Describe your implementation architecture. This includes the machines involved as well as software tools used. (5 pts)
  3. Perform a fragmentation/replication design on the given data. Identify techniques used and describe how you will distribute the data on the various sites. Writeup (about 3 pages) a description of what you did in this step. (10 pts)
  4. Populate the data based on your design. Proof of this should include outputs for relation creations and SQL used to insert the tuples. (10pts)
  5. Develop JDBC programs to actually implement applications using the given relations. This step should include simple implementation/execution against the data. Proof of execution as well as the code should be submitted for grading . (15 pts)
  6. The purpose of this step is to illustrate performance differences with different placements of data and execution sites. Here you need to modify the design using two alternative designs of your choice. Each separate design must modify both execution sites for transactions and fragmentation/replication/placement of data. You must submit for grading an explanation of each design alternative used as well as proof of implementation and execution. Execute the applications under the three distribution scenarios and briefly (about 5 pages) describe the results. This should include a discussion of evaluation metrics chosen (you must have at least two) and comparison between implementation approaches. (45 pts)

7. Evaluate this project in terms of what you learned and difficulties encountered. (10 pts)

SCHEDULE

DATE / Both Alternatives
2/15 / Project Choice
3/8 / Parts 1,2,3 (Writeup due)
3/29 / Parts 4,5 (Writeup or demonstration)
4/10 / Complete writeup due (all parts)

Videotape students please add two weeks to these due dates.