Course descripion
- This year the Distributed Transaction Management course will be a part of the OSCu (Open Source Courseware) co-operation, and it is expected that there is also a group from the Tampere University of Technology and the University of Helsinki following the course.
- Link to official course page.
Lectures
- The lectures are given in English, and the course material is also in English.
- Lecture times: Tue 10-12 A217, 7.10-28.11
- There will be lectures on the following dates: 7.10., 21.10., 4.11., 11.11, 18.11. and 25.11.
- Lecturer: Prof (TaY) Jyrki Nummenmaa
Material
- Background reading
- Introduction
- Lecture 1
- Lecture 2 Logicalclocks
- ChandyLamport global snapshot algorithm
- Lecture 3
- Lecture 4 Background reading on 2PC/3PC
- Lecture 5 2PC implementation
- Lecture 6
Exercises
- 14.10-2.12 Tue 8-10 C454.
- Exercise 1 Solutions
- Exercise 2 Solutions
- Exercise 3 Solutions
- Exercise 4 Solutions
- Exercise 5 Solutions
- Exercise 6 Solutions
Project
Implement distributed data management. The data may be something just as simple as an integer vector. You may also choose a different structure for your data.
The client takes read, write, rollback and commit commands from the user, and calls the services from a local txn coordinator. That is, the user's client program does not know about the distribution.
The local txn coordinator needs to know how the data is distributed to call the services of distributed resource managers. Use separate calls for locking and actually accessing the data items, e.g. first lock data item X and separately read or write X.
The distributed resource managers manage distributed locks and and data.
Implement 2PC for distributed commit. You do not need to implement durability or 2PC recovery. This means, in particular, that you do not need to write logs.
You can use the example LockManager implementation as a basis for your coursework and modify it to include the required features. Additional documentation is not required, if the source code is commented properly. However, include a README.txt file in your packet. In the README-file put all the required commands to compile and run your distributed data manager and include a "use scenario", which intuitively shows the functionality of your implementation. The use scenario should explain how many servers and clients are started (and the commands to start them) and the commands to be typed for the clients. Add System.out.priltln-commands to the client and server programs, which show what is going on in the programs (i.e. when locking and releasing objects or reading or updating data items).
Project work is due to 31.1.2004. Compress all your source files and the README.txt file to a single zip- or tar-packet and return the packet by email to Toni Strandell.
The coursework is an obligatory part of the course and is required to be returned by 31.1.2004 in order to pass the course. The project may raise your grade, but not lower it.
Exam
- The questions will be in English, but you can answer to the questions in English or in Finnish. You are not allowed to take any written material to the exam. The exam gives a maximum of 24 points.
- 9.12. 16-20 Auditorium
Jan Lindström (Jan.Lindstrom@cs.Helsinki.FI)