2012年2月10日星期五

Consistency Without Ordering / Backpointer-based Consitency

Work from our group by Vijay. To appear on FAST'12

Objective:
Middle ground betweeen lazy approach (fsck) and aggressive approach (journaling, COW) toward file system crash consistency.

Key Insights:
1. All file system inconsistencies are due to ambiguity about the logical identity of an object. (e.g., block belongs to which file, inode belongs to which directory)
2. Mutual agreements guarantees consistency. Thus adding backpointer, and check if they agree with forward pointer).

Implementation (based on ext2, called NoFS):
1. Assume 4K block and some associated info can be written atomically (could be true in future's disk?)
2. Every block has backpointers to point to its logical owner. (Some blocks can have multiple pointers).
3. When start-up, build file system state INCREMENTALLY, as each object is examined.
4. Have to change page-cache to accommodate the fact that now a block is 4K+some other info.

Discussion:
1. Doesn't have to pay run-time penalty as in journaling approach (except for the short scan phase to reconstruct state when start up)
2. Differs from Pilot's file system and fsck in that the scan process at start up is non-blocking, so that you can do file system operation while scanning (would be slower during scanning, though).

Takeaway:
Note that in their evaluation, they want to show:
a. NoFS provides consistency
b. NoFS's performance.
Similar to what we want to show in our project. So some methodology can be borrowed.


没有评论:

发表评论