Title: WOLF A Novel Reordering Write Buffer to Boost the Performance of LogStructured File Systems
1WOLF A Novel Reordering Write Buffer to Boost
the Performance of Log-Structured File Systems
- Jun Wang, Yiming Hu
- Proceedings of the FAST 2002 Conference on File
and Storage Technologies - Jan, 28-30, 2002
2Log Structured File System
- Writes all modifications to disk sequentially in
a log-like structure - Speeding up both file writing and crash recovery
- Log is the only structure on disk
- Segment cleaner (garbage collector) needed
3Problems of LFS (1/2)
- Garbage collection overhead(a.k.a. segment
cleaning overhead) - Especially under random updates and accesses
- Several schemes have been proposed to speed up
garbage collection process
4Problems of LFS (2/2)
- Proposed schemes
- Greedy/benefit-to-cost cleaning
- Hole-plugging policy
- Adaptive algorithm
- And more
- All concentrated to make cleaner efficiently
after files are written to disk
5New Scheme (1/2)
- WOLF
- reordering Write buffer Of Log-structured File
system - Uses two or more segment buffers
- When write data arrives, system sorts them into
different buffers according to their expected
longevity - One for active data, another for less-active
data,
6New Scheme (2/2)
- WOLF (contd)
- Leads to bimodal distribution
- Segments are either mostly full ormostly
empty - Cleaner can select many nearly empty segments to
clean and compact into a small number of segments - By re-organizing data in RAM before they reach
the disk, this scheme also make the system do
less garbage collection work
7LFS writing process 1
Three kinds of blocks
Valid data block
Empty block
Invalidated block
Data blocks first enter a segment buffer
Data
Buffer
Note This slide and following 3 slides are
copied from author(Jun Wang)s own FAST 2002
presentation slides.
8LFS writing process 2
Buffer will be written to the disk when full
Disk
After a while, many blocks in segments are
invalidated, Leaving holes and require garbage
collection
Disk
9WOLF writing process 1
Four kinds of blocks
Valid active block
Empty block
Valid inactive block
Invalidated block
Data blocks first enter one of two segment
buffers based on expected activities
Data
Buffer1
Buffer2
10WOLF writing process 2
Buffer will be written to the disk when full
Disk
After a while, most blocks in active segments are
invalidated,While most in the inactive segments
are intact.
Disk
11WOLF Design Write (1/2)
- Key problem
- How to separate active data from inactive data
and put them into different buffers accordingly
12WOLF Design Write (2/2)
- Heuristic adaptive grouping algorithm
- Each block in reorder buffer has a reference
count (initially zero) - Reference count is incremented when the block is
accessed - Count is reset to zero after certain period of
time (timebar(initially 10min)) - Timebar could be adaptively tuned for various
incoming accesses (doubled, or halved)
13WOLF Design Read
- WOLF only changes the write cache structure of
LFS - Read operation are not affected
- WOLF read performance is similar to that of LFS
- But, when system is heavily loaded, WOLF should
have better read performance because of its more
efficient garbage collection process
14WOLF Design GC
- use adaptive approach (Matthews SOSP97)
- Select eitherbenefit-to-cost cleanning
orhole-pluggingdepending oncost-benefit
estimates
15Experiment Environment(1/2)
- WOLF simulator
- LFS simulator (port from Sprite LFS)
- Disk simulator
16Experiment Environment(2/2)
- Workload model
- Four real world traces
- INS, RES, SITAR, HARP
- Four synthetic traces
- Uniform
- Hot-and-cold
- Ephemeral small file
- Transaction processing suite (TPC-D)
17Performance Result (1/2)
Note This slide and following slide are copied
from author(Jun Wang)s own FAST 2002
presentation slides.
18Performance Result (2/2)
19T h e E n d
Any question?