Skip to content
This repository has been archived by the owner on Mar 20, 2021. It is now read-only.
Shuli Jiang edited this page May 27, 2018 · 5 revisions

Under Construction

OtterTune is currently under construction. Check back soon!


Client

The client side consists of a driver and a controller. The driver controls all the control flow of the client's side and the controller collects DBMS knobs and metrics data.

  • 1 - The driver first clears cache and restarts the database. It also checks the disk usage exceeds the maximum usage (a threshold defined by the user). If so, the driver will drop the experiment database and reload the benchmark to ensure there is enough space to carry out the experiment and for the controller to collect DBMS knobs and metrics data.
  • 2 - The driver then runs the oltpbenchmark as a background job. When the benchmark is ready to begin measurement, the driver sends a signal to the controller to start the experiment and waits for the benchmark to finish. The length of the experiment's observation time is defined in the benchmark configuration file.
  • 3 - The controller first collects knobs and metrics data before the observation. Then it waits until the driver sends another signal.
  • 4 - After the oltpbenchmark finishes its measurement, the driver sends a terminate signal to the controller. Upon receiving the signal, the controller collects the metrics data again. The controller will format all collected knobs and metrics data along with a metadata summary (i.e. database name and version, observation length, start/end time, workload name) as json files and send those files back to the driver.
  • 5 - The driver uploads all the DBMS data the controller collected to the server. The driver will receive a unique token from the server and use the token to check periodically whether the server has finished with a recommended new configuration.
  • 6 - If the server has successfully generated the next configuration, the driver will query the new configuration from the server and install it to the database.

Server

OtterTune

OtterTune is a new tool that’s being developed by students and researchers in the Carnegie Mellon Database Group that can automatically find good settings for a DBMS’s configuration knobs. The goal is to make it easier for anyone to deploy a DBMS without any expertise in database administration. To tune new DBMS deployments, OtterTune reuses training data gathered from previous tuning sessions. Because OtterTune doesn’t need to generate an initial dataset for training its ML models, tuning time is drastically reduced.

For more information, see our paper.

Contributors

See the people page for the full list of contributors.