ARC : A Self-Tuning, Low Overhead Replacement...

26
ARC : A Self-Tuning, Low Overhead Replacement Cache Nimrod Megiddo, Dharmendra S. Modha ๋ฐ‘๋น ์ง„๋…์—์ฝ”์ธ๋ถ“๊ธฐ

Transcript of ARC : A Self-Tuning, Low Overhead Replacement...

Page 1: ARC : A Self-Tuning, Low Overhead Replacement Cachecsl.snu.ac.kr/courses/4190.568/2019-1/23-ARC.pdfย ยท ARC(๐’„, ) โ€ขKeeps recent ๐‘˜pages discarded from ๐ฟ1 (not from ๐ฟ2)

ARC : A Self-Tuning, Low Overhead

Replacement Cache

Nimrod Megiddo, Dharmendra S. Modha

๋ฐ‘๋น ์ง„๋…์—์ฝ”์ธ๋ถ“๊ธฐ

Page 2: ARC : A Self-Tuning, Low Overhead Replacement Cachecsl.snu.ac.kr/courses/4190.568/2019-1/23-ARC.pdfย ยท ARC(๐’„, ) โ€ขKeeps recent ๐‘˜pages discarded from ๐ฟ1 (not from ๐ฟ2)

2

Introduction

Before Cache Mangement Problem

Demand Paging vs Prefetching Page

Input Sequence : A C F B D E โ€ฆโ€ฆ

โ€ข Only Allocate when it requests

Demand Paging

Prefetching โ€ข Predict Future for reasonable

heuristics ex) bring near pages

1

2

1

2

1

2Evict 1

+ How to bring?

Evict 1replacement

policy

Fault Occurs?

replacement policy+ complex method

Page 3: ARC : A Self-Tuning, Low Overhead Replacement Cachecsl.snu.ac.kr/courses/4190.568/2019-1/23-ARC.pdfย ยท ARC(๐’„, ) โ€ขKeeps recent ๐‘˜pages discarded from ๐ฟ1 (not from ๐ฟ2)

3

Problem Description

Cache Management Problem on Demand Paging Model

โ€ข Main and the only Concern : Hit ratio

Cache Replacement Algorithm

Goal : Better than LRU

โ€ข Maximize hit rateโ€ข Minimize Overhead

- Time - Space

Page 4: ARC : A Self-Tuning, Low Overhead Replacement Cachecsl.snu.ac.kr/courses/4190.568/2019-1/23-ARC.pdfย ยท ARC(๐’„, ) โ€ขKeeps recent ๐‘˜pages discarded from ๐ฟ1 (not from ๐ฟ2)

4

Previous Work โ€“ Offline Optimal

Beladyโ€™s MIN

โ€ข Replace Largest Forward distance

But, Who knows future?

Input Sequence : 5 0 1 2 0 3 1 2 5 2

Cache content

0 5

1 0

2 1

4

26

Evict!

Page 5: ARC : A Self-Tuning, Low Overhead Replacement Cachecsl.snu.ac.kr/courses/4190.568/2019-1/23-ARC.pdfย ยท ARC(๐’„, ) โ€ขKeeps recent ๐‘˜pages discarded from ๐ฟ1 (not from ๐ฟ2)

5

Before Previous Work

Metric ARC

Recency O

Frequency O

Time Complexity O(1)

Scan Resistance O

โ€œSelf-tunableโ€ O

Page 6: ARC : A Self-Tuning, Low Overhead Replacement Cachecsl.snu.ac.kr/courses/4190.568/2019-1/23-ARC.pdfย ยท ARC(๐’„, ) โ€ขKeeps recent ๐‘˜pages discarded from ๐ฟ1 (not from ๐ฟ2)

6

Previous Work - Recency

LRU(Least Recently Used)

Input Sequence : 1 2 3 4 5 6 7

1 2

1

3

2

1

4

3

2

1

5

4

3

2

1

6

5

4

3

2

7

6

5

4

3

MRU

LRU

Data structure : Queue, Time complexity : O(1)

Old-Fashion, But Quite Good Performance

No Frequency Concerned

Page 7: ARC : A Self-Tuning, Low Overhead Replacement Cachecsl.snu.ac.kr/courses/4190.568/2019-1/23-ARC.pdfย ยท ARC(๐’„, ) โ€ขKeeps recent ๐‘˜pages discarded from ๐ฟ1 (not from ๐ฟ2)

7

Previous Work - Frequency

LFU(Least Frequently Used)

1

2

3

4

5

33

31

30

29

32

1

2

3

4

5

34

31

30

29

32

1

2

3

4

6

34

31

30

1

32

1 6

Data structure : Priority Queue, Time complexity : O(logn)

No Recency Concerned

Page 8: ARC : A Self-Tuning, Low Overhead Replacement Cachecsl.snu.ac.kr/courses/4190.568/2019-1/23-ARC.pdfย ยท ARC(๐’„, ) โ€ขKeeps recent ๐‘˜pages discarded from ๐ฟ1 (not from ๐ฟ2)

8

LRU-2(LFU Extension)

Previous Work - Frequency

How to define โ€˜Frequentโ€™?

Input Sequence : 5 0 1 2 0 3 1 2 5 2 7

Inter-arrival rate

Inter-arrival rate High-frequent !

0

1

2

3

5

9

3

โˆž

10

8

Time tick : 1 2 3 4 5 6 7 8 9 10

2nd Backward Distance

Evict!

ProblemCIP(Correlated Information Period)

๐‘ฅ0, โ€ฆ , ๐‘ฅ๐‘– , ๐‘ฅ๐‘–+1, โ€ฆ , ๐‘ฅ๐‘—

How far do we have to consider 2 pages are related?

Page 9: ARC : A Self-Tuning, Low Overhead Replacement Cachecsl.snu.ac.kr/courses/4190.568/2019-1/23-ARC.pdfย ยท ARC(๐’„, ) โ€ขKeeps recent ๐‘˜pages discarded from ๐ฟ1 (not from ๐ฟ2)

9

LRU-2(LFU Extension)

Previous Work - Frequency

Hard to Predict best CIP Value only on 1 workload !

Metric LRU-2

Time Complexity O(logn)

Self-tunable X

Page 10: ARC : A Self-Tuning, Low Overhead Replacement Cachecsl.snu.ac.kr/courses/4190.568/2019-1/23-ARC.pdfย ยท ARC(๐’„, ) โ€ขKeeps recent ๐‘˜pages discarded from ๐ฟ1 (not from ๐ฟ2)

10

2Q(LRU-2 Extension)

Previous Work - Frequency

Metric 2Q

Time Complexity O(1)

Self-tunable X

๐‘จ๐’Ž(LRU)

๐‘จ๐’Š๐’

๐‘จ๐’๐’–๐’•

๐‘ฒ๐’Š๐’ = ๐ŸŽ. ๐Ÿ๐’„๐‘ฒ๐’๐’–๐’• = ๐ŸŽ.๐Ÿ”๐’„Input Sequence : 5 0 1 2 0 3 1 2 5 2 7

Still Have to tune some parameters

Page 11: ARC : A Self-Tuning, Low Overhead Replacement Cachecsl.snu.ac.kr/courses/4190.568/2019-1/23-ARC.pdfย ยท ARC(๐’„, ) โ€ขKeeps recent ๐‘˜pages discarded from ๐ฟ1 (not from ๐ฟ2)

11

LIRS(Low Inter-reference Recency Set)

Previous Work - Frequency

Metric LIRS

Time Complexity Stack-Pruning

Self-tunable X

Input Sequence : 1 4 2 3 2 1 4 1 5

5

4

3

2

1

LIRS stack

๐‘ณ๐’๐’Š๐’“๐’” + ๐‘ณ๐’‰๐’Š๐’“๐’” = ๐’„๐‘ณ๐’๐’Š๐’“๐’” = ๐ŸŽ. ๐ŸŽ๐ŸŽ๐Ÿ๐’„

Still Have to tune some parameters

5

HIRS

stack

๐’„ = ๐Ÿ‘๐‘ณ๐’‰๐’Š๐’“๐’” = ๐Ÿ๐‘ณ๐’๐’Š๐’“๐’” = ๐Ÿ

Page 12: ARC : A Self-Tuning, Low Overhead Replacement Cachecsl.snu.ac.kr/courses/4190.568/2019-1/23-ARC.pdfย ยท ARC(๐’„, ) โ€ขKeeps recent ๐‘˜pages discarded from ๐ฟ1 (not from ๐ฟ2)

12

Previous Work - Frequency + Recency

FBR(Frequency Based replacement)

๐‘ท๐’‚๐’“๐’•๐’Š๐’•๐’Š๐’๐’ ๐’“๐’‚๐’•๐’Š๐’ ๐’๐’‡ ๐Ÿ‘ ๐‘บ๐’†๐’„๐’•๐’Š๐’๐’๐’”

๐‘จ๐’Ž๐’‚๐’™(predetermined)

๐‘ช๐’Ž๐’‚๐’™(predetermined)

Metric FBR

Self-tunable X

2(1) 0(1) 1(1) 5(1) 4(1) 9(2)

New Middle Old

Input Sequence : 0 5 11

Still Have to tune some parameters

Page 13: ARC : A Self-Tuning, Low Overhead Replacement Cachecsl.snu.ac.kr/courses/4190.568/2019-1/23-ARC.pdfย ยท ARC(๐’„, ) โ€ขKeeps recent ๐‘˜pages discarded from ๐ฟ1 (not from ๐ฟ2)

13

Previous Work - Frequency + Recency

LRFU(Least Recently Frequently Used)

๐‘ญ ๐’™ =๐Ÿ

๐’‘

๐€๐’™

Input Sequence : 1 4 2 3 2 1 4 1 5

Time Tick : 1 2 3 4 5 6 7 8 9 10

๐‚๐Ÿ๐ŸŽ ๐Ÿ = F(10-1) + F(10-6) + F(10-8)

๐’Š๐’‡ ๐€ โ†’ ๐ŸŽ, ๐‘ญ ๐’™ = ๐Ÿ

๐’Š๐’‡ ๐€ โ†’ ๐Ÿ, ๐‘ญ ๐’™ =๐Ÿ

๐’‘

๐’™

Metric LRFU

Self-tunable X

Still Have to tune some parameters

๐‘ณ๐‘ญ๐‘ผ

๐‘ณ๐‘น๐‘ผ

๐€, ๐’‘

1 >1

2+1

4+1

8+โ‹ฏ

Page 14: ARC : A Self-Tuning, Low Overhead Replacement Cachecsl.snu.ac.kr/courses/4190.568/2019-1/23-ARC.pdfย ยท ARC(๐’„, ) โ€ขKeeps recent ๐‘˜pages discarded from ๐ฟ1 (not from ๐ฟ2)

14

Previous work - MQ

โ€ข Multi-Queue replacement policy

โ€ข Each ๐‘„๐‘– contains [2๐‘–,2๐‘–+1) times seen pages

โ€ข Each hit page is assigned lifetime

โ€ข If a page expired, it goes down to lower-level queueโ€™s MRU position

T = 3, lifeTime = 5 => expireTime = 8

๐‘„๐‘–

๐‘„๐‘–โˆ’1

T = 8

โ€ข Parameter tuning neededโ€ข # of queues, lifeTime, โ€ฆ

โ€ข Overhead for checking timestamp

Page 15: ARC : A Self-Tuning, Low Overhead Replacement Cachecsl.snu.ac.kr/courses/4190.568/2019-1/23-ARC.pdfย ยท ARC(๐’„, ) โ€ขKeeps recent ๐‘˜pages discarded from ๐ฟ1 (not from ๐ฟ2)

15

Terms and basics

โˆ(c) : Replacement Policies which manage c pages

๐ฟ1 : Set of pages seen only once recently

๐ฟ2 : Set of pages seen more than once recently

0 โ‰ค ๐ฟ1 + ๐ฟ2 โ‰ค 2๐‘, 0 โ‰ค ๐ฟ1 โ‰ค ๐‘, 0 โ‰ค ๐ฟ2โ‰ค 2๐‘

Replace ๐ฟ1 when ๐ฟ1 is full, if not, replace ๐ฟ2-> make | ๐ฟ1 | and | ๐ฟ2| similar

Page 16: ARC : A Self-Tuning, Low Overhead Replacement Cachecsl.snu.ac.kr/courses/4190.568/2019-1/23-ARC.pdfย ยท ARC(๐’„, ) โ€ขKeeps recent ๐‘˜pages discarded from ๐ฟ1 (not from ๐ฟ2)

16

DBL(2c)

Cache hit : MRU update

Cache miss : Case A : ๐ฟ1 is full -> replace LRU of ๐ฟ1Case B : ๐ฟ1 isnโ€™t full

Case B-1 : ๐ฟ1 + ๐ฟ2 = 2๐‘ (cache full)-> replace LRU of ๐ฟ2

Case B-2 : ๐ฟ1 + ๐ฟ2 < 2๐‘ (cache isnโ€™t full)-> insert into ๐ฟ1

Summary : Fill ๐ฟ1 up to ๐‘

Page 17: ARC : A Self-Tuning, Low Overhead Replacement Cachecsl.snu.ac.kr/courses/4190.568/2019-1/23-ARC.pdfย ยท ARC(๐’„, ) โ€ขKeeps recent ๐‘˜pages discarded from ๐ฟ1 (not from ๐ฟ2)

17

ฯ€(c) โ€“ general structure

๐‘‡1๐œ‹ : Top(MRU) of ๐ฟ1

๐ต1๐œ‹ : Bottom(LRU) of ๐ฟ1

๐‘‡2๐œ‹ : Top(MRU) of ๐ฟ2

๐ต2๐œ‹ : Bottom(LRU) of ๐ฟ2

โ€ข ๐‘‡๐‘–๐œ‹ โˆฉ ๐ต๐‘–

๐œ‹ = โˆ…, ๐ฟ๐‘– = ๐‘‡๐‘–๐œ‹ โˆช ๐ต๐‘–

๐œ‹

โ€ข |๐ฟ1 โˆช ๐ฟ2| < c => ๐ต1๐œ‹ โˆช ๐ต2

๐œ‹ = โˆ…

โ€ข |๐ฟ1 โˆช ๐ฟ2| โ‰ฅ c => ๐‘‡1๐œ‹ โˆช ๐‘‡2

๐œ‹ = ๐‘

โ€ข MRU(๐ต) < LRU(๐‘‡)

โ€ข Cache contains ๐‘‡1๐œ‹ โˆช ๐‘‡2

๐œ‹

Page 18: ARC : A Self-Tuning, Low Overhead Replacement Cachecsl.snu.ac.kr/courses/4190.568/2019-1/23-ARC.pdfย ยท ARC(๐’„, ) โ€ขKeeps recent ๐‘˜pages discarded from ๐ฟ1 (not from ๐ฟ2)

18

LRU(c)

โ€ข In DBL(2c)

โ€ข If a page in ๐ฟ1 evicted

โ€ข ๐ฟ1 must be full ( ๐ฟ1 = ๐‘)

โ€ข If a page in ๐ฟ2 evicted

โ€ข ๐ฟ2 โ‰ฅ ๐‘

=> Evicted page is at most ๐‘ MRU

Both DBL(2c) and LRU(c) properly keep c MRU (proved)

Page 19: ARC : A Self-Tuning, Low Overhead Replacement Cachecsl.snu.ac.kr/courses/4190.568/2019-1/23-ARC.pdfย ยท ARC(๐’„, ) โ€ขKeeps recent ๐‘˜pages discarded from ๐ฟ1 (not from ๐ฟ2)

19

๐‘ญ๐‘น๐‘ช๐‘ท ๐’„ (Fixed Replacement Cache)

โ€ข ๐‘ is tunable parameter (0 โ‰ค ๐‘ โ‰ค ๐‘)

โ€ข Follows all properties of ฯ€(c)

โ€ข Keeps ๐‘‡1 = ๐‘, ๐‘‡2 = ๐‘ โˆ’ ๐‘

โ€ข Replacement Policy

โ€ข If ๐‘‡1 > ๐‘ : Replace LRU of ๐‘‡1

โ€ข If ๐‘‡1 < ๐‘ : Replace LRU of ๐‘‡2

โ€ข If ๐‘‡1 = ๐‘ : (arbitrary)

Page 20: ARC : A Self-Tuning, Low Overhead Replacement Cachecsl.snu.ac.kr/courses/4190.568/2019-1/23-ARC.pdfย ยท ARC(๐’„, ) โ€ขKeeps recent ๐‘˜pages discarded from ๐ฟ1 (not from ๐ฟ2)

20

ARC(๐’„) (Adaptive Replacement Cache)

โ€ข Parameter ๐‘ adaptively changes (No tuning needed)

โ€ข Cache miss and the page was in ๐ต1 => increase |๐‘‡1| (increase ๐‘)

โ€ข Cache miss and the page was in ๐ต2 => increase |๐‘‡2| (decrease ๐‘)

โ€ข The amount of change in parameter ๐‘ is learning rate

โ€ข If ๐ต1 contains missed page => we should increase ๐‘

โ€ข If ๐ต1 โ‰ฅ |๐ต2| : increase ๐‘ by 1

โ€ข If ๐ต1 < |๐ต2| : increase ๐‘ by ๐ต2

๐ต1

โ€ข Similar in ๐ต2 hit case.

Page 21: ARC : A Self-Tuning, Low Overhead Replacement Cachecsl.snu.ac.kr/courses/4190.568/2019-1/23-ARC.pdfย ยท ARC(๐’„, ) โ€ขKeeps recent ๐‘˜pages discarded from ๐ฟ1 (not from ๐ฟ2)

21

ARC(๐’„) - algorithm

(๐‘ฅ : Current requested stream)

โ€ข Case 1 : ๐‘ฅ โˆˆ (๐‘‡1 โˆช ๐‘‡2)

โ€ข Cache hit. Move ๐‘ฅ into ๐‘‡2 and update MRU

โ€ข Case 2 : ๐‘ฅ โˆˆ ๐ต1

โ€ข Increase ๐‘ by learning rate

โ€ข Move ๐‘ฅ into ๐‘‡2 and update MRU

โ€ข Case 3 : ๐‘ฅ โˆˆ ๐ต2

โ€ข Decrease ๐‘ by learning rate

โ€ข Move ๐‘ฅ into ๐‘‡2 and update MRU

Page 22: ARC : A Self-Tuning, Low Overhead Replacement Cachecsl.snu.ac.kr/courses/4190.568/2019-1/23-ARC.pdfย ยท ARC(๐’„, ) โ€ขKeeps recent ๐‘˜pages discarded from ๐ฟ1 (not from ๐ฟ2)

22

ARC(๐’„) - algorithm

โ€ข Case 4 : ๐‘ฅ โˆ‰ (๐ต1 โˆช ๐ต2)

โ€ข Case 4-A : |๐‘‡1 โˆช ๐ต1| = ๐‘

โ€ข Case 4-A-1 : |๐‘‡1| < ๐‘

โ€ข Replace LRU of ๐ต1

โ€ข Case 4-A-2 : |๐‘‡1| = ๐‘

โ€ข ๐ต1 is empty -> Replace LRU of ๐‘‡1

โ€ข Case 4-B : |๐‘‡1 โˆช ๐ต1| < ๐‘

โ€ข If |๐‘‡1| + ๐‘‡2 + ๐ต1 + ๐ต2 โ‰ฅ ๐‘

โ€ข Replace LRU of ๐ต2 if |๐‘‡1| + ๐‘‡2 + ๐ต1 + ๐ต2 = 2๐‘

โ€ข Finally : Move ๐‘ฅ into ๐‘‡1 and update MRU

Page 23: ARC : A Self-Tuning, Low Overhead Replacement Cachecsl.snu.ac.kr/courses/4190.568/2019-1/23-ARC.pdfย ยท ARC(๐’„, ) โ€ขKeeps recent ๐‘˜pages discarded from ๐ฟ1 (not from ๐ฟ2)

23

ARC(๐’„,๐’Œ)

โ€ข Keeps recent ๐‘˜ pages discarded from ๐ฟ1 (not from ๐ฟ2)

โ€ข All pages in the keeping set are more recent than new ๐ฟ2 pages

โ€ข Otherwise, discard the page from keeping set

โ€ข If request hits the keeping set, move that page into ๐‘‡2 directly

โ€ข Previous algorithm denoted ARC(๐‘, 0)

Page 24: ARC : A Self-Tuning, Low Overhead Replacement Cachecsl.snu.ac.kr/courses/4190.568/2019-1/23-ARC.pdfย ยท ARC(๐’„, ) โ€ขKeeps recent ๐‘˜pages discarded from ๐ฟ1 (not from ๐ฟ2)

24

Experimental result

Page 25: ARC : A Self-Tuning, Low Overhead Replacement Cachecsl.snu.ac.kr/courses/4190.568/2019-1/23-ARC.pdfย ยท ARC(๐’„, ) โ€ขKeeps recent ๐‘˜pages discarded from ๐ฟ1 (not from ๐ฟ2)

25

Experimental result

Page 26: ARC : A Self-Tuning, Low Overhead Replacement Cachecsl.snu.ac.kr/courses/4190.568/2019-1/23-ARC.pdfย ยท ARC(๐’„, ) โ€ขKeeps recent ๐‘˜pages discarded from ๐ฟ1 (not from ๐ฟ2)

26

Conclusion

โ€ข No parameter tuning needed

โ€ข Empirically universal

โ€ข Less overhead

โ€ข Empirically good performance

โ€ข Robust, Scan-resistance

LRU LFU LRU-2 LIRS FBR LRFU MQ ARC

Recency O X X X O O O O

Frequency X O O O O O O O

ConstantTime

O O X O O - - O

ScanResistance

X X O O O O O O

โ€œSelf-tunableโ€

O O X X X X X O