Midterm Exam

CS262, Fall 1999

Brewer/Hellerstein

This exam is open book -- feel free to consult any textual references you deem appropriate.  These questions should be answerable with a combination of the class readings, class notes, and some thinking; there is no reason to consult any additional material. (Doing so may simply confuse things!)

You are not allowed to discuss the questions with anyone!

1. Transactional Queues:
a) There are three transactions used in the basic transactional queue protocol.  For each one, explain the problems that it prevents.
b) Explain the minimum requirements to acheive "exactly once" delivery of a message.  Don't say "use transactional queues".  Instead argue what you need to provide "at least once", and then "at most once", and then both.  You must handle network, client, and server failures.
c) How can you guarantee in-order execution of items in a transactional queue?  Is it enough to start them in order?  If not, explain what else you need to do.
 

2. Locks
a) What is wrong with releasing a lock held by a dead process?
b) What should be done with such locks?
c) Under what circumstances can you switch to lock-free synchronization (i.e. atomic memory operations) to avoid this problem?
 

3. Logs: LFS and Aries
a) At any given moment, what disk-resident information constitutes the "master copy" of all data in LFS?  In Aries?  Be sure to include any disk-resident metadata that helps you identify the real data.
b) Describe differences in disk traffic in LFS and the Aries log.
c) Describe how to reclaim space in LFS and in an Aries log.
 

4. Most RPC systems do not correctly support true "pass-by-reference".
a) What problem must be overcome to ensure correct behavior?  Give an example of this problem.
b) Describe a scheme to overcome this problem.
 

5. Concurrency and Isolation
a) Degree 2 consistency -- as defined by Gray in the paper we read -- is a popular usage mode in modern database systems.  Why is this so?
b) Can degree 2 consistency be achieved easily in a system implemented with Optimistic Concurrency Control?  If so, what minor modifications to O.C.C. would need to be made?  If not, why not?  [Hint: In either case, you should be able to prove your point with example transaction schedule.]

6. Filesystems and Databases
Oracle is busy designing a network file system that is implemented on top of Oracle's Relational Database Management System.  Your task is to be Oracular, and design such a file system.

a) Describe the relational tables and any indexes you need to build to capture the data and metadata in a file system.
b) Describe how an arbitrary existing directory (including pathname) is listed ('ls') in your scheme.  You needn't use SQL or relational algebra, but informally describe the operations used to do this, clearly delineating all the I/Os required.
c) Contrast your answer to (b) with what happens in FFS, and discuss the performance implications of the contrast.
d) Describe how to correctly implement FFS 'rename' in your Oracle file system; be sure to give all the relevant Oracle details.
e) Other than ACID features, what is a main benefit of using an RDBMS for the filesystem?  Give 2 examples of that benefit.