Assignment handed out on Wednesday, March 14, 2001

Due in Recitation on 3/15/2001:

Read Chapter 12 from the text. Focus on sections 12.2-12.4. Also read The Design and Implementation of a Log-Structured File System. Your writing/discussion assignment:
Suppose you were implementing transactions, for a banking system. Due to the nature of the application, you assume that the read:write ratio on accounts will be close to 1:1 (e.g., deposits and withdrawals, the most common transactions, require reading the balance, then writing it back out. Locks require a test and a set.).

You've read that a Log-Structured File System is supposed to increase write efficiency, so you decide to consider it as your system's file system.

One huge consideration is implementing your commit procedure. For this procedure to work, you need to make sure that LFS won't lose your writes. It looks like LFS has two recovery mechanisms - Checkpoints and Roll-Forwards. Checkpoints appear to be more robust than Roll-Forwards. Describe why this is, and the key tradeoff(s). What system parameter could you alter to increase the granularity of checkpointing? If relying solely on Checkpoints was not practical, how would you approach using Roll-Forwards to implement commit, so that your committed transactions will not disappear if the server unexpectedly shuts down?

Hint: Consider at what point during a file write the data becomes recoverable under Roll-Forward.