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.
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.
There is a dmclock project through which bugs can be reported and features requested.
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:
-DPROFILE=yes
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.
The make dmclock-tests
command builds unit tests.
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.
To be written....