If two-phase locking is used, when can write locks be released in a recoverable schedule? When is the earliest time that a read lock can be released? Please explain.
Let the memory-commit of a transaction T be the point when T's commit record is written to the in-memory log buffer. Let the disk-commit of T be the point when T's log record is flushed to disk. With so-called group commit, T's write locks are released after the in-memory commit. The client that submitted T is not notified of its commit until after the disk commits. Explain why a group commit system does not generate recoverable schedules. Explain why this is not a problem.
Advanced Part:
A transaction T modifies two files, X and Y, atomically. As it runs, T will generate three log records: LX: the log record for the X action, LY: the log record for the Y action, and LC: the log record for the commit record.
Below are four scenarios describing what is flushed out to disk and what is not.
For each scenario, state if it could happen under a pure undo value logging scheme, a pure redo value logging scenario, an undo/redo value logging scheme, or if the scenario could never arise.
List the important system parameters that influence the cost of distributed implementations of services. Choose an example service (e.g., synchronization, distributed shared memory or caching file system) and illustrate how the protocols that implement it are influenced by the system parameters. If we want to build a fault-tolerant implementation, what assumptions are necessary about the system. For example, what assumptions should be made to build distributed transactions. Are these assumptions reasonable in practical systems? Discuss your answer.
Discuss the pros and cons of using public versus symmetric key cryptography.
How you would change the protocol described in Birrel's paper to use public key cryptography (perhaps combined with symmetric key cryptography)? What would be the pros and cons of this new protocol?