Title: LRFU (Least Recently/Frequently Used) Block Replacement Policy
1LRFU (Least Recently/Frequently Used)Block
Replacement Policy
- Sang Lyul Min
- Dept. of Computer Engineering
- Seoul National University
2Why file cache?
Processor - Disk Speed Gap
1950s
1990s
- Processor - IBM 701
- 17,000 ins/sec
- Disk - IBM 305 RAMAC
- Density - 0.002 Mbits/sq. in
- Average seek time - 500 ms
- Processor - IBM PowerPC 603e
- 350,000,000 ins/sec
- Disk - IBM Deskstar 5
- Density - 1,319 Mbits/sq. in
- Average seek time - 10 ms
x 20,000
x 600,000
x 50
3File Cache
main memory
disk controller
processor
disks
file cache or buffer cache
disk cache
4Operating System 101
O(1) complexity
O(n) complexity
O(log n) complexity
5Operating System 101
- LRU
- Advantage
- High Adaptability
- Disadvantage
- Short sighted
- LFU
- Advantage
- Long sighted
- Disadvantage
- Cache pollution
6Motivation
7 8 9 10 11 12Observation
- Both recency and frequency affect the
likelihood of future references - The relative impact of each is largely determined
by cache size
13Goal
- A replacement algorithm that allows a flexible
trade-off between recency and frequency
14Results
- LRFU (Least Recently/Frequently Used) Replacement
Algorithm that - (1) subsumes both the LRU and LFU algorithms
- (2) subsumes their implementations
- (3) yields better performance than them
15CRF (Combined Recency and Frequency) Value
Current time tc
?1
?2
?3
time
t3
t2
t1
Ctc(b) F(?1) F(?2) F(?3)
tc - t1 tc - t2
tc - t3
16CRF (Combined Recency and Frequency) Value
- Estimate of how likely a block will be referenced
in the future - Every reference to a block contributes to the CRF
value of the block - A references contribution is determined by
weighing function F(x)
17Hints and Constraints on F(x)
- should be monotonically decreasing
- should subsume LRU and LFU
- should allow efficient implementation
18Conditions for LRU and LFU
- LRU Condition
- If F(x) satisfies the following condition, then
the LRFU algorithm becomes the LRU algorithm - LFU Condition
- If F(x) c, then the LRFU algorithm becomes the
LFU algorithm
current time
i
block a
x
block b x x x x x x x x
i1
i2
? ? ? ? ?
i3
19Weighing function F(x)
Meaning a references contribution to the target
blocks CRF value is halved after every 1/ ?
20Properties of F(x) (?)?x
- Property 1
- When ? 0, (i.e., F(x) 1), then it becomes LFU
- When ? 1, (i.e., F(x) (?)x ), then it becomes
LRU - When 0 lt ? lt 1, it is between LFU and LRU
21Results
- LRFU (Least Recently/Frequently Used) Replacement
Algorithm that - ?(1) subsumes both the LRU and LFU algorithms
- (2) subsumes their implementations
- (3) yields better performance than them
22Difficulties of Naive Implementation
- Enormous space overheads
- Information about the time of every reference to
each block - Enormous time overheads
- Computation of the CRF value of every block at
each time
23Update of CRF value over time
24Properties of F(x) (?)?x
- Property 2
- With F(x) (?)?x, Ctk(b) can be computed from
Ctk-1(b) as follows - Ctk(b) Ctk-1(b) F (?) F (0)
-
-
tk - tk-1 - Implications Only two variables are required for
each block for maintaining the CRF value - One for the time of the last reference
- The other for the CRF value at that time
25Difficulties of Naive Implementation
- Enormous space overheads
- Information about the time of every reference to
each block - Enormous time overheads
- Computation of the CRF value of every block at
each time
26Properties of F(x) (?)?x
- Property 3
- If Ct(a) gt Ct(b) and neither a or b is referenced
after t, then Ct'(a) gt Ct'(b) for all t' gt t - Why?
- Ct'(a) Ct(a) F(?) gt Ct(b) F(?) Ct'(b)
(since F(?) gt 0 ) - Implications
- Reordering of blocks is needed only upon a block
reference - Heap data structure can be used to maintain the
ordering of blocks with O(log n) time complexity
27Optimized Implementation
28Optimized Implementation
Reference to a new block
Reference to a block in the linked list
Reference to a block in the heap
29Question What is the maximum number of blocks
that can potentially compete with a currently
referenced block?
30(No Transcript)
31Properties of F(x) (?)?x
Archi Network LAB
Seoul National University
32Optimized implementation (Contd)
Archi Network LAB
Seoul National University
33Results
- LRFU (Least Recently/Frequently Used) Replacement
Algorithm that - ?(1) subsumes both the LRU and LFU algorithms
- ?(2) subsumes their implementations
- (3) yields better performance than them
34Correlated References
correlated references
correlated references
correlated references
35LRFU with correlated references
- Masking function Gc(x)
- C'tk(b), CRF value when correlated references are
considered, can be derived from C'tk-1(b) - C'tk(b) F(tk - tk) F(tk - ti )Gc(ti1
- ti ) - F( tk - tk-1) F(0) Gc( tk -
tk-1) C'tk-1(b) - F(0) F(0) -
Archi Network LAB
Seoul National University
36Trace-driven simulation
- Sprite client trace
- Collection of block references from a Sprite
client - contains 203,808 references to 4,822 unique
blocks - DB2 trace
- Collection of block references from a DB2
installation - Contains 500,000 references to 75,514 unique
blocks
Archi Network LAB
Seoul National University
37Effects of ? on the performance
Archi Network LAB
Seoul National University
38Combined effects of ? and correlated period
Archi Network LAB
Seoul National University
39Previous works
- FBR (Frequency-Based Replacement) algorithm
- Introduces correlated reference concept
- LRU-K algorithm
- Replaces blocks based on time of the Kth-to-last
non-correlated references - Discriminates well the frequently and
infrequently used blocks - Problems
- Ignores the K-1 references
- linear space complexity to keep the last K
reference times - 2Q and sLRU algorithms
- Use two queues or two segments
- Move only the hot blocks to the main part of the
disk cache - Work very well for used-only-once blocks
Archi Network LAB
Seoul National University
40Comparison of the LRFU policy with other policies
Archi Network LAB
Seoul National University
41Implementation of the LRFU algorithm
- Buffer cache of the FreeBSD 3.0 operating system
- Benchmark SPEC SDET benchmark
- Simulates a multi-programming environment
- consists of concurrent shell scripts each with
about 150 UNIX commands - gives results in scripts / hour
Archi Network LAB
Seoul National University
42SDET benchmark results
Hit rate
SDET Throughput (scripts/ hour)
Hit Rate
?
Archi Network LAB
Seoul National University
43Conclusions
- LRFU (Least Recently/Frequently Used) Replacement
Algorithm that - ?(1) subsumes both the LRU and LFU algorithms
- ?(2) subsumes their implementations
- ?(3) yields better performance than them
44Future Research
- Dynamic version of the LRFU algorithm
- LRFU algorithm for heterogeneous workloads
- File requests vs. VM requests
- Disk block requests vs. Parity block requests
(RAID) - Requests to different files (index files, data
files)
45 People
- REAL PEOPLE
- (Graduate students)
- Lee, Donghee
- Choi, Jongmoo
- Kim, Jong-Hun
- Guides
- (Professors)
- Noh, Sam H.
- Min, Sang Lyul
- Cho, Yookun
- Kim, Chong Sang
http//archi.snu.ac.kr/symin/
46Adaptive LRFU policy
- Adjust ? periodically depending on the evolution
of workload - Use the LRU policy as the reference model to
quantify how good (or bad) the locality of the
workload has been - Algorithm of the Adaptive LRFU policy
- if ( gt
) - ? value for period i1 is updated in the same
direction - else
- the direction is reversed
Archi Network LAB
Seoul National University
47Results of the Adaptive LRFU
Client Workstation 54
DB2
Archi Network LAB
Seoul National University