Presentation is loading. Please wait.

Presentation is loading. Please wait.

PrincetonUniversity From application requests to Virtual IOPs: Provisioned key-value storage with Libra David Shue * and Michael J. Freedman (*now at Google)

Similar presentations


Presentation on theme: "PrincetonUniversity From application requests to Virtual IOPs: Provisioned key-value storage with Libra David Shue * and Michael J. Freedman (*now at Google)"— Presentation transcript:

1 PrincetonUniversity From application requests to Virtual IOPs: Provisioned key-value storage with Libra David Shue * and Michael J. Freedman (*now at Google)

2 Shared Cloud Tenant ATenant B VM Tenant C VM

3 Shared Cloud Storage Tenant ATenant B VM Key-Value Storage Block Storage SQL Database Tenant C VM

4 Unpredictable Shared Cloud Storage Tenant ATenant B VM Key-Value Storage Block Storage SQL Database Tenant C VM Disk IO-bound Tenants SSD-backed storage Key-Value Storage

5 Provisioned Shared Key- Value Storage Tenant A VM Tenant B VM Tenant C VM Application Requests Shared Key-Value Storage Low-level IO SSD GET/s PUT/s IOPs BW Reservation A Reservation B Reservation C (1KB normalized)

6 6 Libra Contributions Libra IO Scheduler - Provisions low-level IO allocations for app-request reservations w/ high utilization. - Supports arbitrary object distributions and workloads. 2 key mechanisms - Track per-tenant app-request resource profiles. - Model IO resources with Virtual IOPs.

7 7 Related Work Storage Type App- request s Work Conserving Medi a MaestroBlockNNHDD mClockBlockNYHDD FlashFQBlockNYSSD DynamoD B Key- Value YNSSD

8 Provisioned Distributed Key-Value Storage Tenant ATenant B VM Reservation A Reservation B Tenant B VM Storage Node N Storage Node 1... Shared Key-Value Storage Global Reservation Problem Local Reservation Problem [Pisces OSD1 ’12]

9 9 Storage Node N Provisioned Distributed Key-Value Storage Reservation A Reservation B Storage Node 1 data partitions demand... Tenant A VM Tenant B VM

10 10 Storage Node N Storage Node 1 Provisioned Distributed Key-Value Storage Reservation A Reservation B... Reservation A Reservation B

11 11 Storage Node N Storage Node 1 Provisioned Distributed Key-Value Storage... Res An Res Bn Res A1 Res B1 Reservation A Reservation B Reservation A Reservation B

12 12 Key-Value Protocol Persistence Engine IO Scheduler Physical Disk Retrieve K Read l337 IO operation Provisioned Local Key-Value Storage GET K GET 1001100 Libra IO Scheduler

13 13 blah Libra Design Libra Provisioning Policy Libra IO Scheduler GET PUT How much IO to consume? Reservation Distribution Policy How much IO to provision? Persistence Engine Physical Disk DRR Determine the cost of a tenant request Provision IO allocations for tenant app-request reservations

14 14 Provisioning App-request Reservations is Hard Reservation Bn IO Amplification IO Interference Non-linear IO Performance 1 KB PUT ≥ 1 KB Write Variable IO throughput Underestimate provisionable IO Non-linear cost per KB Model IO with Virtual IOPs Track tenant app-request resource profiles

15 15 Workload-dependent IO Amplification PUT PUT K,V 3 V3V3 V2V2 FLUSH V3V3 index A M LevelDB (LSM-Tree) COMPACT V1V1 index HV V0V0 FO V3V3 A O

16 16 Workload-dependent IO Amplification PUT FLUSH COMPACT PUT K,V 3 V3V3 V2V2 V3V3 index A M V1V1 HV V0V0 FO V3V3 A O LevelDB (LSM-Tree)

17 17 Workload-dependent IO Amplification PUT FLUSH COMPACT PUT K,V 3 V3V3 V2V2 V3V3 index A M V1V1 HV V0V0 FO V3V3 A O LevelDB (LSM-Tree)

18 18 Workload-dependent IO Amplification GET K index A M Workload-dependent IO Amplification index HV FO K GZ

19 19 Libra Tracks App-request IO Consumption to Determine IO Allocations Libra IO Scheduler 5 GET 25 PUT FLUSH COMPACT Per-PUT Per-GET EWMA per-request averages Compute app- request IO profiles GET x x PUT IO = Tenant A 5 IO units PUT FLUSH Track IO consumption Provision IO allocations blah Libra Provisioning Policy IO Tenant A 500 IO/s 5 100 50 1 + 6 1 0.5 80 70 500

20 20 Unpredictable IO Interference Die-level parallelism, low latency IOPs 4 read/4 write tenants Shared-controller and bus contention Erase-before-write overhead FTL and read-modify- write garbage colleciton

21 21 Unpredictable IO Interference 21 Unpredictable IO Interference

22 22 Libra Underestimates IO Capacity to Ensure Provisionable Throughput Provisionable IO throughput = floor(workloads) (18 Kop/s) Provisionable IO limit

23 23 Libra Underestimates IO Capacity to Ensure Provisionable Throughput Provisionable IO throughput = floor(workloads) (18 Kop/s) Provisionable IO limit

24 24 Libra Underestimates IO Capacity to Ensure Provisionable Throughput Provisionable IO throughput = floor(workloads) (18 Kop/s) Provisionable IO limit

25 25 Non-linear IO Performance IOP Cost = linear decrease until 6 KB, then constant IOP Cost = constant until 6 KB, then linear increase Max BW Max IOP/s

26 26 Non-linear IO Performance Max BW Max IOP/s

27 27 Libra Uses Virtual IOPs to Model IO Resources Unifies IO cost into a single metric Captures non-linear IO performance Provides IO insulation 2 equal-allocation tenants IO Insulation = 1/2 Max Read/Write

28 28 Libra Uses Virtual IOPs to Model IO Resources 2 equal-allocation tenants IO Insulation = 1/2 Max Read/Write

29 29 blah Libra Design Libra Provisioning Policy Libra IO Scheduler Persistence Engine Physical Disk Determine the cost of a tenant request Provision IO allocations for tenant app-request reservations Charge tenant IOPs based on VOP cost Track app-request VOP consumption Provision VOPs within provisionable limit Update tenant VOP allocations

30 30 Evaluation Does Libra's IO resource model achieve accurate resource allocations? Does Libra's IO threshold make an acceptable tradeoff of performance for predictability in a real storage stack? Can Libra ensure per-tenant app-request reservations while achieving high utilization?

31 31 Interference-free Ideal Libra Achieves Accurate IO Allocations Throughput Ratio = Actual / Expected (IO Insulation) Read 1 KB even

32 32 Interference-free Ideal Libra Achieves Accurate IO Allocations Write 1-256 KB Throughput Ratio = Actual / Expected (IO Insulation)

33 33 Libra Achieves Accurate IO Allocations

34 34 Libra Achieves Accurate IO Allocations

35 35 Libra Achieves Accurate IO Allocations Min-Max Ratio = Min Throughput Ratio / Max Throughput Ratio

36 36 Libra Trades-off Nominal IO Throughput For Predictability

37 37 Libra Trades-off Nominal IO Throughput For Predictability < 10th percentile covered by SLA and higher-level policies Percentile Workload10th50th80thAll 99:1 1.6%30.5%40.5%45.8% 25:75 1.4%14.9%25.0%34.7% 1:99 0.7%12.2%19.5%28.1% Unprovisionable Throughput As a Percentage of Total Throughput

38 38 Libra Achieves App-request Reservations Read HeavyMixedWrite Heavy 1.5x0.5x Work-conserving consumption of unprovisioned resources Fully provisioned allocations

39 39 Libra Achieves App-request Reservations Read HeavyMixedWrite Heavy

40 40 Libra IO Scheduler  Provisions IO allocations for app-request reservations w/ high utilization.  Supports arbitrary object distributions and workloads. 2 key mechanisms  Track per-tenant app-request resource profiles.  Model IO resources with Virtual IOPs. Evaluation  Achieves accurate low-level IO allocations.  Provisions the majority of IO resources over a wide range of workloads  Satisfies app-request reservations w/ high utilization. Conclusion


Download ppt "PrincetonUniversity From application requests to Virtual IOPs: Provisioned key-value storage with Libra David Shue * and Michael J. Freedman (*now at Google)"

Similar presentations


Ads by Google