dmclock (deprecated)
This repository contains C++ 11 code that implements the dmclock distributed quality of service algorithm. See mClock: Handling Throughput Variability for Hypervisor IO Scheduling by Gulati, Merchant, and Varman for a description of the algorithm.
Important Notice
This repository has been archived. Due to no known users outside of Ceph, we have moved the dmclock project directly into the Ceph repository to simplify backports and maintenance.
For any contributions or further development of dmclock, please submit pull requests to the Ceph project.
Bugs and features
There is a dmclock project through which bugs can be reported and features requested.
Running cmake
When running cmake, set the build type with either:
-DCMAKE_BUILD_TYPE=Debug
-DCMAKE_BUILD_TYPE=Release
To turn on profiling, run cmake with an additional:
Running make
Building the dmclock library
The make command builds a library libdmclock.a. That plus the header
files in the src directory allow one to use the implementation in
their code.
Building unit tests
The make dmclock-tests command builds unit tests.
Building simulations
The make dmclock-sims command builds two simulations -- dmc_sim
and ssched_sim -- which incorporate, respectively, the dmclock
priority queue or a very simple scheduler for comparison. Other
priority queue implementations could be added in the future.
dmclock API
To be written....