apavlo/h-store — Issue #18: Write-Ahead Logging
Author: apavlo
Created: 2012-01-11 18:02:28+00:00
State: open
Labels: cs227

Although storing an entire database in main memory allows the system to run significantly faster, many administrators are unwilling to deploy mission-critical applications without the guarantees of disk. In this project, students will implement a command logging feature in H-Store that writes out the work performed by the database to a file on the local disk and the file will be fsync-ed. They will familiarize themselves with state-of-the-art practices used in both open-source and commercial database systems and the issues of ensuring transaction consistency in a high-performance database system.

1. Implement write-ahead redo logs. For each new transaction request that arrives at a master node (assuming replicas), the system will write a triplet out to a file that contains (1) the transaction id, (2) the name of the procedure, and (3) its input parameters. When the transaction finishes, the system will then write out whether the transaction committed or aborted. Using H-Store's built-in benchmark framework, students will measure the overhead of logging.

2. Add support to replay the log at start-up and re-execute the transactions. The first implementation can just assume that the database was restored from a checkpoint, but future versions will coordinate with the recovery project.

3. Once the basic implementation is in place, students will explore different approaches for optimizing the performance.