DCM makes it easy for developers to build complex cluster managers by harnessing the power of constraint solving technologies through SQL.


Modern cluster management systems like Kubernetes and Openstack grapple with hard combinatorial optimization problems: load balancing, placement, scheduling, and configuration. Currently, developers tackle these problems by designing custom application-specific algorithms---an approach that is proving unsustainable, as ad-hoc solutions both perform poorly and introduce overwhelming complexity to the system, making it challenging to add important new features.

We propose a radically different architecture, where programmers drive cluster management tasks declaratively, using SQL queries over cluster state stored in a relational database. These queries capture in a natural way both constraints on the cluster configuration as well as optimization objectives. When a cluster reconfiguration is required at runtime, our tool, called DCM, synthesizes an encoding of these queries into an optimization model, which it solves using an off-the-shelf solver. Code:


2019 Interns

2018 Interns

External Researchers

  • Brian Oki
  • Mukesh Hira
  • Sahan Gamage
  • Zeeshan Lokhandwala

Related Publications


  • Active VMW Software Systems Projects