HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
cmu-db
ottertune
Python2017–2023
cmu-db / ottertune · Archived

ottertune

The automatic DBMS configuration tool

6Distinct people
10Mentions
0Explicit recommenders
1.2KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

The automatic DBMS configuration tool

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 5:04:57 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year10 dated mentions

Observed mentions: 2017-06-05 15:30:29 UTC to 2023-11-20 19:35:22 UTC.

012342017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 2 mentions; 1 submissions, 1 comments20172018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 4 mentions; 1 submissions, 3 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments20202021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2023

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC211
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC101
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC413
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC101
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC000
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC101
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC101

What Hacker News says

10 sources
The thing this most makes me think of is Ottertune, that the Carnegie Mellon DB group came up with several years ago for MySQL, https://github.com/cmu-db/ottertune, and eventually commercialised https://ottertune.com/ for MySQL and Postgres. I keep thinking about this from a JVM perspective, there's so many settings you can tweak that can have such a drastic impact on performance, depending on your workload, that it seems likely there's some value in automated tuning. The main difficult there (from my probably naive perspective) is figuring out the right feedback loop.
In Tuning the Linux kernel with AI, according to ByteDance
There's a black box optimizer for databases, which is designed to take the user away from having to find and tweak all the hundreds of possible tunables in the database, https://github.com/cmu-db/ottertune / https://ottertune.cs.cmu.edu/ I keep wanting the same for JVM. It's probably nice that there are so many ways to adjust the JVM to best suit a very wide range of workloads, but from a practical perspective I rarely have spare time to go diving through the guts to experiment. Let me point something at a one-box, and it can tweak parameters to its hearts content, so I can export and apply to the rest of the fleet.
In Kafka Removing Zookeeper Dependency
> I would wager that Java's GC is better just for the simple fact that it has a whole bunch of knobs you can turn based on your workload. Tuning the GC is a challenge in and of itself. When you get so many knobs to turn, it can get hard to rationalise the overall impact of any particular one. It's part of why skilled DBAs are worth their weight in gold, for example (there was a fun paper & tool from CMU a couple of years ago, OtterTune https://github.com/cmu-db/ottertune, which tries to apply machine learning to what is almost a black-box optimisation problem)
In JVM Garbage Collectors Benchmarks Report
Yeah, cloud providers do advertise DBaaS as 'simple' but there's a reason they don't advertise anything on parameter tuning or say that they replace DBAs [1]. You pay them so that they give you a self-managed database, but they definitely leave a lot of work on your plate. RL-based tuning might change that soon though: https://github.com/cmu-db/ottertune [1] https://aws.amazon.com/blogs/database/part-1-role-of-the-dba...
In Performance: AWS RDS Postgres vs. Digital Ocean Postgres
So does Oracle DB as well. In the mysql world, mysqltuner has been kicking around for more than a decade now that spits out suggested configuration changes. I haven't had a need to use it in several years though https://github.com/major/MySQLTuner-perl There was an interesting project around applying blackbox optimisation to MySQL, called OtterTune on which a paper was published a couple of years ago, https://blog.acolyer.org/2017/08/11/automatic-database-manag.... They got some good results out of it. Haven't attempted to use it myself: https://github.com/cmu-db/ottertune There are just so many dials and switches that can be changed that can modify the performance of the database, it really has to be moving far beyond anything any one individual could possibly grok.
In Simple script to analyse your PostgreSQL database config, give tuning advice
CMU is doing a bunch of research on exactly what you mentioned. [1] is a general SQL database that aims to operate "autonomously" by predicting workloads (although AFAIK its current capabilities are mostly limited to adaptively moving records between row-oriented and column-oriented storage). I think [2] is based on the same research, but is a more concrete tool for tuning MySQL and Postgres configuration. I think ultimately, it's a much less tractable problem than anyone expected. [1] http://pelotondb.io/ [2] https://github.com/cmu-db/ottertune
In Database Learning: Toward a Database That Becomes Smarter Every Time

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.