LRFU (Least Recently/Frequently Used) Replacement Algorithm

Download Report

Transcript LRFU (Least Recently/Frequently Used) Replacement Algorithm

LRFU (Least Recently/Frequently Used)
Block Replacement Policy
Sang Lyul Min
Dept. of Computer Engineering
Seoul National University
Archi & Network LAB
Seoul National University
Why file cache?
Processor - Disk Speed Gap
1950’s
1990’s
• Processor - IBM 701
• 17,000 ins/sec
• Processor - IBM PowerPC 603e
x 20,000
• 350,000,000 ins/sec
• Disk - IBM 305 RAMAC
• Density - 0.002 Mbits/sq. in
• Average seek time - 500 ms
• Disk - IBM Deskstar 5
x 600,000
x 50
• Density - 1,319 Mbits/sq. in
• Average seek time - 10 ms
Archi & Network LAB
Seoul National University
File Cache
processor
main memory
file cache or buffer cache
disk controller
disks
disk cache
Archi & Network LAB
Seoul National University
Operating System 101
• LRU Replacement
• LFU Replacement
LRU Block
New
reference
LFU Block
New
reference
heap
MRU Block
O(1) complexity
MFU Block
O(log
O(n)
n) complexity
complexity
Archi & Network LAB
Seoul National University
Operating System 101
• LRU
– Advantage
• High Adaptability
– Disadvantage
• Short sighted
• LFU
– Advantage
• Long sighted
– Disadvantage
• Cache pollution
Archi & Network LAB
Seoul National University
Motivation
• Cache size = 20 blocks
Archi & Network LAB
Seoul National University
• Cache size = 60 blocks
Archi & Network LAB
Seoul National University
• Cache size = 100 blocks
Archi & Network LAB
Seoul National University
• Cache size = 200 blocks
Archi & Network LAB
Seoul National University
• Cache size = 300 blocks
Archi & Network LAB
Seoul National University
• Cache size = 500 blocks
Archi & Network LAB
Seoul National University
Observation
• Both recency and frequency affect the
likelihood of future references
• The relative impact of each is largely
determined by cache size
Archi & Network LAB
Seoul National University
Goal
A replacement algorithm that allows
a flexible trade-off between recency
and frequency
Archi & Network LAB
Seoul National University
Results
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
Archi & Network LAB
Seoul National University
CRF (Combined Recency and Frequency)
Value
Current time tc
1
time
t1
t2
2
3
t3
Ctc(b) = F(1) + F(2) + F(3)
||
tc - t1
||
tc - t 2
||
tc - t3
Archi & Network LAB
Seoul National University
CRF (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 reference’s contribution is determined by
weighing function F(x)
Archi & Network LAB
Seoul National University
Hints and Constraints on F(x)
• should be monotonically decreasing
• should subsume LRU and LFU
• should allow efficient implementation
Archi & Network LAB
Seoul National University
Conditions for LRU and LFU
• LRU Condition
– If F(x) satisfies the following condition, then the
LRFU algorithm becomes the LRU algorithm
i F(i) 

 F(j)
j i 1
i
current
time
block a:
x
block b: x x x x x x x x
i+1
i+2
    
i+3
• LFU Condition
– If F(x) = c, then the LRFU algorithm becomes the
LFU algorithm
Archi & Network LAB
Seoul National University
Weighing function F(x)
F(x) = ()x
Meaning: a reference’s contribution to the target
block’s CRF value is halved after every 1/ 
Archi & Network LAB
Seoul National University
Properties 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 <  < 1, it is between LFU and LRU
F(x)
1
F(x) = 1 (LFU extreme)
Spectrum
(LRU/LFU)
x (LRU extreme)
F(x)
=
()
0
X
current time - reference time
Archi & Network LAB
Seoul National University
Results
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
Archi & Network LAB
Seoul National University
Difficulties 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
Archi & Network LAB
Seoul National University
Update of CRF value over time
t1
1
2
time
t2
3

= (t2 - t1)
C t2(b) = F (1+) + F (2+) + F (3+)
= ()(1+ ) + () (2+ ) + () (3+ )
= (()1 + ()2 + ()3 ) ()
= C t1(b)
x
F ()
Archi & Network LAB
Seoul National University
Properties 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
Archi & Network LAB
Seoul National University
Difficulties 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
Archi & Network LAB
Seoul National University
Properties of F(x) = ()x
• Property 3
– If Ct(a) > Ct(b) and neither a or b is referenced
after t, then Ct'(a) > Ct'(b) for all t' > t
• Why?
Ct'(a) = Ct(a) F() > Ct(b) F() = Ct'(b) (since F() > 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
Archi & Network LAB
Seoul National University
Optimized Implementation
Blocks that can
compete with a
currently referenced
block
Archi & Network LAB
Seoul National University
Optimized Implementation
Reference to a new
block
linked list
Reference to a block
in the heap
Reference to a block
in the linked list
linked list
linked list
1. replaced
referenced
block
2. promoted
2. demoted
3. new block
4. heap
restored
heap
1. demoted
1. heap
restored heap
3. heap
restored
referenced
block
heap
Archi & Network LAB
Seoul National University
Question
What is the maximum number of blocks that
can potentially compete with a currently
referenced block?
Archi & Network LAB
Seoul National University
current
time
block a:
x
block b: x
•
x
•
x
•
x
x dthreshold
dthreshold +1
dthreshold +2
time
• • •
+ F(d threshold +2) + F(d threshold +1) + F(d threshold ) < F(0)
Archi & Network LAB
Seoul National University
Properties of F(x) = ()x
• Property 4 :
dthreshold =
When   0
When   1
log  (1- ())

log  (1- ())
=

log  (1- ())

= 1
Archi & Network LAB
Seoul National University
Optimized implementation (Cont’d)
linked list
linked list
linked list (null)
hea
p
heap
LFU
extreme
LRU
extreme
heap
(single element)
O(log n)
O(1)
Archi & Network LAB
Seoul National University
Results
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
Archi & Network LAB
Seoul National University
Correlated References
correlated
references
correlated
references
correlated
references
Archi & Network LAB
Seoul National University
LRFU with correlated references
• Masking function Gc(x)
0 : x  c
Gc(x)  
1 : x  c, c : correlated period
• C'tk(b), CRF value when correlated references are
considered, can be derived from C'tk-1(b)
k 1
C'tk(b) = F(tk - tk) +  F(tk - ti )*Gc(ti+1 - ti )
i 1
= F( tk - tk-1) * [F(0) * Gc( tk - tk-1) + C'tk-1(b) - F(0)] + F(0)
Archi & Network LAB
Seoul National University
Trace-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
Effects of  on the performance
Hit Rate
Hit Rate
X
X
X
X
X
X
X
X

(a) Sprite client

(b) DB2
Archi & Network LAB
Seoul National University
Combined effects of  and correlated
period
Hit Rate
Hit Rate
Correlated
Period

Correlated
Period

(a) Sprite client (b) DB2
Archi & Network LAB
Seoul National University
Previous works
• FBR (Frequency-Based Replacement) algorithm
– Introduces correlated reference concept
• LRU-K algorithm
– Replaces blocks based on time of the K’th-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
Comparison of the LRFU policy with other
policies
Hit Rate
Hit Rate
Cache Size (# of blocks)
Cache Size (# of blocks)
(a) Sprite client
(b) DB2
Archi & Network LAB
Seoul National University
Implementation 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
SDET benchmark results
Hit rate
Hit Rate
SDET Throughput
(scripts/ hour)

Cache
Size
LRU
LRFU
50
69.6
71.2
100
70.0
73.6
200
71.2
74.9
300
72.4
75.7
Archi & Network LAB
Seoul National University
Conclusions
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
Archi & Network LAB
Seoul National University
Future 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)
Archi & Network LAB
Seoul National University
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/
Archi & Network LAB
Seoul National University
Adaptive 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 (
HitLRFU (i) HITLRFU (i 1)
HITLRFU (i 1)
>
HitLRU (i) HITLRU (i 1)
HITLRU (i 1)
 value for period i+1 is updated in the same direction
– else
the direction is reversed
Archi & Network LAB
Seoul National University
)
Results of the Adaptive LRFU
Client Workstation 54
DB2
Cache
Size
LRU
LRFU
Adaptive
LRFU
Cache
Size
LRU
LRFU
Adaptive
LRFU
1200
0.5588
0.6049
0.5872
1000
0.6544
0.6899
0.6772
1500
0.6494
0.7326
0.7093
3000
0.7295
0.7527
0.7463
2000
0.7939
0.8634
0.8461
5000
0.7625
0.7802
0.7652
2500
0.9198
0.9440
0.9291
7000
0.7809
0.7962
0.7815
3000
0.9657
0.9726
0.9707
10000
0.8009
0.8107
0.8023
Archi & Network LAB
Seoul National University