Check out the new USENIX Web site. next up previous
Next: Separating Active and Inactive Up: The Design of WOLF Previous: The Design of WOLF


Writing

After the file system receives a write request, WOLF decides if the requested data is active or inactive and puts the write data into one of the segment buffers accordingly. (We discuss how to do this in Section 2.2.) Old data in a disk segment will also be invalidated. The request is then considered complete.

When the write buffers are full, all buffers are written to disk segments in large write requests in order to amortize the cost of many small writes. Since WOLF contains several segment buffers and each buffer is written into a different disk segment, several large writes occur during the process (one large write for each buffer).

As in the LFS, WOLF also writes buffers to the disk when one of the following conditions is satisfied, even when the buffers are not full:

Since the LFS uses a single segment buffer, when a buffer write is invoked, only one large write is issued. WOLF maintains two or more segment buffers. To simplify the crash recovery process ( discussed in Section 2.3), when WOLF has to write data to the disk, all segment buffers in RAM will be written (logged) to the disk at the same time. While the logging process contains several large disk write operations since each segment buffer is written to a different disk segment, WOLF considers the log operation atomic. A logging is considered successful only if all segment buffers are successfully written to the disk. The atomic logging feature means that we can view the multiple physical segments of WOLF as a single virtual segment.

The atomic writing of multiple segments can easily be achieved with a timestamp. All segments written together will have the same timestamp and the same ``number of segments written together'' field. During crash recovery, the system searches for the segments with the latest timestamp. If the number of segments with the same latest timestamp matches the ``number of segments written together'' field, then the system knows that the last log-writing operation was successful.


next up previous
Next: Separating Active and Inactive Up: The Design of WOLF Previous: The Design of WOLF
Jun Wang 2001-10-31