apple / foundationdb

FoundationDB - the open source, distributed, transactional key-value store
https://apple.github.io/foundationdb/
Apache License 2.0
14.43k stars 1.31k forks source link

Give users ability to change disk behavior in Simulator #1181

Open mpilman opened 5 years ago

mpilman commented 5 years ago

Disks in the simulator are currently implemented in a very simple way: the simulator will make a blocking request and then delay for a random amount of time. This is good enough for most tests, but it is inflexible if one wants to test how FDB behaves. Furthermore it is currently not possible to simulate failing disks.

The problem here is that the test dimensions are getting huge. Optimally we would like to test the following:

sfc-gh-amotivala commented 5 years ago

We should definitely simulate the Azure Managed disk behavior where each second is spilt into 20 sub-interval for IO SLAs.

xumengpanda commented 5 years ago

I guess Azure uses the idea in MSR's paper: End-to-end Performance Isolation Through Virtual Datacenters [1].

One question: The SLA related regulation usually smooth the burst request (e.g., burst IO requests) by delaying the request. This will definitely affect performance. But will it affect correctness? (I guess simulation can still catch the OOM bug at the event of slow request.)

[1] https://www.usenix.org/system/files/conference/osdi14/osdi14-paper-angel.pdf