Click here to load reader

Storage-Aware Caching: Revisiting Caching for Heterogeneous Systems

  • 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

Text of Storage-Aware Caching: Revisiting Caching for Heterogeneous Systems

  • 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

Search related