COM1317, Transaction Processing Systems

Spring 1998, Professor Futrelle

Course (Catalog) Description

Focuses on the concepts and practice of modern transaction processing systems in a distributed setting. Describes the overall architecture of systems such as TP monitor, recovery manager, log manager, and lock manager. Discusses the principles of DO/UNDO/REDO logging such as the write-ahead log rule and the force log-on-commit rule. Describes compensation log records, checkpoint and restart recovery procedures, two-phase commit, lock tables, granularity of locking, and two-phase locking. Prereq. COM 1130, COM1201, and COM1315.

Description of this spring's course

The largest computer system applications in existence are arguably relational database management systems (RDBMS). Because they hold masses of valuable data and may be in constant interaction with thousands of people simultaneously, they must be extraordinarily reliable. They must reliably allow users to work without ever allowing updates to conflict and they must survive hardware and software failures of all types. The stock exchange or airline reservation systems or medical insurance systems or the internal revenue service or the database of known orbiting objects (that might collide with the Space Shuttle if the wrong flight path was used) -- none of these can afford failure or a corruption of the database. This cannot be achieved by any simple means.

Your previous course, COM1315 dealt primarily with the user's view of a DB. You were not concerned with what went on "under the hood" to maintain the integrity of the DB and to allow it to recover from power outages and to recover to a consistent and correct state. That is the focus of this course. We will hardly even mention SQL. Even an experienced user of DBs has probably heard little or nothing of the concepts that will be discussed here, much less the technical details of their implementation. When you finish this course you will be conversant with a wide range of important concepts such as ACID, transactions, concurrency, two-phase locking, log files, rollback, aborted transaction, dirty pages, force-log-on-commit, cursor stability, and more.

You may use or build a variety of systems in the future that though they are not databases per se, cannot afford to lose or corrupt data -- recovering from such disasters could be far more difficult than taking steps during the system design to assure that the system is well-protected against such problems. Much of what you learn in this course will help you understand such systems when you meet them in the future.

You can reach all the COM1317 web pages through the teaching Gateway on my homepage

Major updates of these pages:
3/98: First draft.
4/5/98: Posted on CCS site.

Northeastern University, College of Computer Science, Boston, MA.
Professor Robert P. Futrelle   Email me at:
115/149 Cullinane
Hardcopy mailbox:
161 Cullinane
Class email:
You can also send mail to the ENTIRE COM1317 class.
Office 373-4239 (voice mail), Lab 373-2076, Home 617-244-8261
Course calendar:
17 Friday Last day to drop a SPRING 1998 course without a W grade.
20 Monday PATRIOTS DAY. Normal class schedule
22 Friday Last day to drop a SPRING 1998 course with a W grade.
25 Monday MEMORIAL DAY. University closed.
8 - 13 Monday - Saturday SPRING 1998 Final Exam Week

and you can access the official University Calendar


Machine problems / special projects:
There will be no class-wide programming projects for this course -- transactions are quite non-trivial to set up. The one active project that I have running at this time is the addition of transaction capabilities to an object-oriented persistent store which I have used for a variety of research projects. The system, WOOD, is written in Macintosh Common Lisp and can be run on any College Macintosh, since the College has a site license for Macintosh Common Lisp. We have the complete source code for WOOD. The project is set up for honors students and any other interested students. A possible variation of this work would be to begin the port of WOOD to Unix, using Allegro Common Lisp on the Suns. Follow this link for more information on Lisp, and Macintosh Common Lisp in particular. Web pages on the project will be available shortly.
Transaction Processing by Jim Gray and Andreas Reuter  Morgan Kauffman, 1993. Your reading assignments in the text are substantial, so you will need to get yourself a copy. A copy of this book is on Reserve at Snell library, so you should be able to get started, even if you haven't immediately purchased the text. The primary emphasis will be on Concurrency (Chaps. 7 and 8) and Recovery (Chaps. 9 and parts of 10 and 11).
Books on databases in the library:
Databases is a big and important subject. . There are over 900 books in Snell library, with the words "database" or "databases" in the title, books at every level from beginner to research-level. Amazingly there are almost none that really tell you what is going on inside these systems with respect to reliability, as our text does. Some of the meatier DB textbooks do have single chapters on transaction processing that give you briefer and simpler introductions to the topic than our text does, so you might want to look at some of them. Use NULIS at the Snell Library to check out what's there.
Personal Help:
If you need help at any time, find me in my office or lab, call, or send email, or ask in class to set up an appointment. My office/advising hours are Wednesdays, 11-1.
Mondays, Wednesdays, Thursdays, 9:15-10:20 in room ??CN.
There will be quizzes, a midterm, and a final. All are closed-book. First quiz, ?? April.
Exam weighting:
Midterm: 30%. Final: 50%. Quizzes: 20%. The grading will be adjusted for those people working on Lisp/transaction projects.
There will be a variety of written assignments.
By Monday, April 6, you should have read pages 3-21 and 33-43 (most of the latter should be review). Be familiar with the material on fault tolerance on pages 93-109, and read as much of the rest of the chapter as you choose. By Wednesday, April 8, you should have read about some of the basics of transaction models, pages 159-174 and 180-191. Once this material is discussed, we will dive into the core material of the course, starting with Chapter 7.
I will take attendance from time-to-time. When in doubt, come to class!
Document version:
This document is the first draft, 3/28/98, to be posted on the Web soon after the first class.

Return to Prof. Futrelle's home page