To get to Distributed Transaction Management homepage for Fall 2003, follow this link.

Distributed Transaction Management, Fall 2001, 2 cu

(Hajautettujen transaktioiden hallinta, Syksy 2001, 2 ov)

It is only now that I was asked. Anyway, my intention has been to follow the same rules for this course as for Distributed Systems, and, in particular, that means that you are allowed to take material with you to the exam.


General information




General information

If there are foreing students present, then the teaching will be given in English. The course material will be in English in any case.

The exercise sessions are on Wednesdays, this way you can make questions on Tuesdays, if there are some problems about the exercises. There are no separate exercise groups or sessions - we will do them at the start of the Wednesday sessions.

The course will include a coursework, which can be programming orinted or then not. In some ways, this is a fairly traditional computer science course. There are lectures (which may not always be like traditional lectures, though), and weekly exercises. There is also a courseworks, which is a programming project, and an exam.

The lectures for this course will run for 4 weeks. There are no lectures on 27.11. and 28.11., which means that we can estimate that the last lecture time will be 4.12. and we will still have an exercise session on 5.12.

As this course largely overlaps with the old Distributed System Implementation course, it is not so easy to give full to students who have done DSI earlier. There is some new material as well, so if any of those people wants to attend, it is possible, but needs to do an extended coursework or something like that.


Slides on TIP (Transaction Internet Protocol)

Exercise information

Exercises 5.12.

All exercises are based on the slide "A Browsing Transaction" in the TIP slides - have a look a the Material section. The TIP commands are listed in the lecture note.
  1. What happens in terms of TIP commands exchanged when the browsing transaction is generated?
  2. Suppose that there is a commit vote initiated by Server A, and the outcome is Yes. Find a way to do this in terms of TIP commands being exchanged.
  3. Suppose that Server B decides to pull back from the transaction and abort. Find a way to do this in terms of TIP commands being exchanged.

Exercises 21.11.

  1. How can recovery be implemented for 3PC in the case that all participants have failed.
  2. It is known that if the network may partition, then there is no non-blocking commit protocol. If the network partitions and 3PC termination protocol is being used, what may go wrong?
  3. How should the 3PC termination protocol be changed to prepare for network partition (in which case we get a blocking protocol)? Can you see any reason to use that modified 3PC instead of the (blocking) 2PC?

Exercises 14.11.

  1. Examine a situation, where 2PC blocks. How can you recover in that situation, if you have used 3PC and the events have proceeded similarly?
  2. Modify 3PC (basic version) to use deadlines similarly as has been done with 2PC in the paper "Practical Distributed Commit...". Draw a state diagram.
  3. Modify 3PC to use interaction similarly as has been done with 2PC in the paper "Practical Distributed Commit...". Draw a state diagram.

Exercises 7.11.

  1. Why does two-phase locking guarantee serializability?
  2. Show that there will be no deadlocks if wait-die deadlock prevention is being used.
  3. Is it guaranteed that there is a deadlock, if Chandy-Misra-Haas algorithm thinks so? Does it detect all deadlocks?



In principle, three different ways to do a coursework are available:

  1. A programming project in the style of Distributed Systems (where the application has to do with transaction processing, of course)
  2. Working on protocol specifications using the DisCoSim tool (there's no interactive protocol specifications now, also the recovery and termination protocols are missing).
  3. Study and write an essay based on literature (I have articles available for this).
You can basically decide for yourself, but I want to control that everyone gets a different subject. Therefore, once you have found a subject or you have found that you will not find a subject yourself, e-mail me at and we can finalize your subject.