Click here to load reader
View
20
Download
0
Embed Size (px)
DESCRIPTION
Storage-Aware Caching: Revisiting Caching for Heterogeneous Systems. Brian Forney Andrea Arpaci-Dusseau Remzi Arpaci-Dusseau Wisconsin Network Disks University of Wisconsin at Madison. Circa 1970. App. App. App. Intense research period in policies - PowerPoint PPT Presentation
Storage-Aware Caching:Revisiting Caching for Heterogeneous SystemsBrian ForneyAndrea Arpaci-Dusseau Remzi Arpaci-Dusseau
Wisconsin Network DisksUniversity of Wisconsin at Madison
Circa 1970Intense research period in policiesWide variety developed; many used todayExamples: Clock, LRUSimple storage environmentFocus: workloadAssumption: consistent retrieval costOSpolicybuffer cacheAppAppApp
TodayRich storage environmentDevices attached in many waysMore devicesIncreased device sophisticationMismatch: Need to reevaluateLANWANpolicybuffer cacheAppAppApp
Problem illustrationUniform workloadTwo disksLRU policy
Slow disk is bottleneckProblem: Policy is obliviousDoes not filter wellfastslow
General solutionIntegrate workload and device performanceBalance work across devicesWork: cumulative delayCannot throw out:Existing non-cost aware policy researchExisting caching software
Our solution: OverviewGeneric partitioning frameworkOld ideaOne-to-one mapping: device partitionEach partition has cost-oblivious policyAdjust partition sizesAdvantagesAggregates performance informationEasily and quickly adapts to workload and device performance changesIntegrates well with existing softwareKey: How to pick the partition sizes
OutlineMotivationSolution overviewTaxonomyDynamic partitioning algorithmEvaluationSummary
Partitioning algorithmsStaticPro: SimpleCon: WastefulDynamicAdapts to workloadHotspotsAccess pattern changesHandles device performance faultsUsed dynamic
Our algorithm: OverviewObserve: Determine per-device cumulative delayAct: Repartition cacheSave & reset: Clear last W requestsObserveActSave & reset
Algorithm: ObserveWant accurate system balance viewRecord per-device cumulative delay for last W completed disk requestsAt clientIncludes network time
Algorithm: ActCategorize each partitionPage consumersCumulative delay above threshold possible bottleneckPage suppliersCumulative delay below mean lose pages without decreasing performanceNeitherAlways have page suppliers if there are page consumersPage consumerPage supplierNeitherPage consumerPage supplierNeitherBeforeAfter
Page consumersHow many pages? Depends on state:WarmingCumulative delay increasingAggressively add pages: reduce queuingWarmCumulative delay constantConservatively add pagesCoolingCumulative delay decreasingDo nothing; naturally decreases
Dynamic partitioningEagerImmediately change partition sizesPro: Matches observationCon: Some pages temporarily unusedLazyChange partition sizes on demandPro: Easier to implementCon: May cause over correction
OutlineMotivationSolution overviewTaxonomyDynamic partitioning algorithmEvaluationSummary
Evaluation methodologySimulator
Workloads: synthetic and webCaching, RAID-0 clientLogGP network With endpoint contention Disks 16 IBM 9LZX First-order model: queuing, seek time & rotational time
Evaluation methodologyIntroduced performance heterogeneityDisk agingUsed current technology trendsSeek and rotation: 10% decrease/yearBandwidth: 40% increase/yearScenariosSingle disk degradation: Single disk, multiple agesIncremental upgrades: Multiple disks, two agesFault injectionUnderstand dynamic device performance change and device sharing effectsTalk only shows single disk degradation
Evaluated policiesCost-oblivious: LRU, ClockStorage-aware: Eager LRU, Lazy LRU, Lazy Clock (Clock-Lottery)Comparison: LANDLORDCost-aware, non-partitioned LRUSame as web caching algorithmIntegration problems with modern OSes
SyntheticWorkload: Read requests, exponentially distributed around 34 KB, uniform load across disks
A single slow disk greatly impacts performance.Eager LRU, Lazy LRU, Lazy Clock, and LANDLORD robust as slow disk performance degrades
Synthetic (LRU-based)
22.31830221.47918421.6329322.501009911.8902678
22.15429221.271055121.43257221.047283611.0763314
21.97150321.154575721.23907218.81581189.87784001
21.76354120.981381320.95034916.7363888.77347532
21.56213620.815501820.68799714.84021877.77015061
21.40541320.567296620.40514613.0676916.85042367
21.17965820.398797820.07844311.45553136.00395203
20.9630120.190019119.6754769.971266565.22351135
20.71843319.932220519.2284858.612929344.51369718
20.43517619.65090418.7800217.37426793.86311654
20.05864219.392981618.1854286.251097953.27377816
Eager LRU
LANDLORD
Lazy LRU
LRU
No cache
Age of slow disk (years)
Throughput (MB/s)
LRU-based
Synthetic (data)
Synthetic (LRU)
AgeEager LRULANDLORDLazy LRULRUNo cache
022.31830221.47918421.6329322.501009911.8902678
122.15429221.271055121.43257221.047283611.0763314
221.97150321.154575721.23907218.81581189.87784001
321.76354120.981381320.95034916.7363888.77347532
421.56213620.815501820.68799714.84021877.77015061
521.40541320.567296620.40514613.0676916.85042367
621.17965820.398797820.07844311.45553136.00395203
720.9630120.190019119.6754769.971266565.22351135
820.71843319.932220519.2284858.612929344.51369718
920.43517619.65090418.7800217.37426793.86311654
1020.05864219.392981618.1854286.251097953.27377816
Synthetic (Clock)
AgeClockLazy ClockNo cache
022.488704121.63102711.8902678
121.0522121.44133511.0763314
218.805337121.185649.87784001
316.728409520.9575718.77347532
414.825435120.7419057.77015061
513.064238420.4308016.85042367
611.444032920.1154796.00395203
79.9719685519.7752525.22351135
88.6214641419.2816574.51369718
97.3756685218.8016173.86311654
106.2531140918.2024163.27377816
Synthetic (Clock-based)
22.488704121.63102711.8902678
21.0522121.44133511.0763314
18.805337121.185649.87784001
16.728409520.9575718.77347532
14.825435120.7419057.77015061
13.064238420.4308016.85042367
11.444032920.1154796.00395203
9.9719685519.7752525.22351135
8.6214641419.2816574.51369718
7.3756685218.8016173.86311654
6.2531140918.2024163.27377816
Clock
Lazy Clock
No cache
Age of slow disk (years)
Throughput (MB/s)
Clock-based
Web (LRU-based)
160.646553146.6758098157.148103162.433180182.4647966904
159.413287145.9003505156.81857162.257253481.8391594405
155.34802144.1883992152.938273156.136846979.5502319365
144.362849137.6185628149.547187136.293345571.1343117637
143.615284130.4578955144.409007110.943717457.1995222751
146.285649134.8253256128.15222288.7434986744.7158626754
143.88189136.6751155102.72671969.3020919334.2355292989
139.413223134.375733290.50843851.7542978225.877293117
133.607377129.566885476.54555838.3567103419.3790536045
128.38637123.348024693.6412328.6910329114.3965840292
116.555625118.610126271.23063221.116853210.6126976973
Eager LRU
LANDLORD
Lazy LRU
LRU
No cache
Age of slow disk (years)
Throughput (MB/s)
Web (data)
Web (LRU-based)
AgeEager LRULANDLORDLazy LRULRUNo cache
0160.646553146.6758098157.148103162.433180182.4647966904
1159.413287145.9003505156.81857162.257253481.8391594405
2155.34802144.1883992152.938273156.136846979.5502319365
3144.362849137.6185628149.547187136.293345571.1343117637
4143.615284130.4578955144.409007110.943717457.1995222751
5146.285649134.8253256128.15222288.7434986744.7158626754
6143.88189136.6751155102.72671969.3020919334.2355292989
7139.413223134.375733290.50843851.7542978225.877293117
8133.607377129.566885476.54555838.3567103419.3790536045
9128.38637123.348024693.6412328.6910329114.3965840292
10116.555625118.610126271.23063221.116853210.6126976973
Synthetic (LRU-based)
22.31830221.47918421.6329322.501009911.8902678
22.15429221.271055121.43257221.047283611.0763314
21.97150321.154575721.23907218.81581189.87784001
21.76354120.981381320.95034916.7363888.77347532
21.56213620.815501820.68799714.84021877.77015061
21.40541320.567296620.40514613.0676916.85042367
21.17965820.398797820.07844311.45553136.00395203
20.9630120.190019119.6754769.971266565.22351135
20.71843319.932220519.2284858.612929344.51369718
20.43517619.65090418.7800217.37426793.86311654
20.05864219.392981618.1854286.251097953.27377816
Eager LRU
LANDLORD
Lazy LRU
LRU
No cache
Age of slow disk (years)
Throughput (MB/s)
LRU-based
Synthetic (data)
Synthetic (LRU)
AgeEager LRULANDLORDLazy LRULRUNo cache
022.31830221.47918421.6329322.501009911.8902678
122.15429221.271055121.43257221.047283611.0763314
221.97150321.154575721.23907218.81581189.87784001
321.76354120.981381320.95034916.7363888.77347532
421.56213620.815501820.68799714.84021877.77015061
521.40541320.567296620.40514613.0676916.85042367
621.17965820.398797820.07844311.45553136.00395203
720.9630120.190019119.6754769.971266565.22351135
820.71843319.932220519.2284858.612929344.51369718
920.43517619.65090418.7800217.37426793.86311654
1020.05864219.392981618.1854286.251097953.27377816
Synthetic (Clock)
AgeClockLazy ClockNo cache
022.488704121.63102711.8902678
121.0522121.44133511.0763314
218.805337121.185649.87784001
316.728409520.9575718.77347532
414.825435120.7419057.77015061
513.064238420.4308016.85042367
611.444032920.1154796.00395203
79.9719685519.7752525.22351135
88.6214641419.2816574.51369718
97.3756685218.8016173.86311654
106.2531140918.2024163.27377816
Synthetic (Cloc