Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
134 commits
Select commit Hold shift + click to select a range
760a58e
welcome
patrickhyw Dec 31, 2024
1877621
welcome
patrickhyw Dec 31, 2024
01715a1
dsstore
patrickhyw Dec 31, 2024
381655e
leaderboard
patrickhyw Dec 31, 2024
b6b1973
sysknobs
patrickhyw Dec 31, 2024
3d946dc
qknobs
patrickhyw Dec 31, 2024
4214ca2
indexes
patrickhyw Dec 31, 2024
20030d8
added navbar
patrickhyw Dec 31, 2024
17f8476
got rid of navbar
patrickhyw Dec 31, 2024
93536c3
added next buttons
patrickhyw Dec 31, 2024
b358c24
moved next buttons to top right
patrickhyw Dec 31, 2024
055ebee
changed font
patrickhyw Dec 31, 2024
2417357
styled header bar
patrickhyw Dec 31, 2024
c725c42
added padding to all tables
patrickhyw Dec 31, 2024
95f29a1
centered form on welcome
patrickhyw Dec 31, 2024
8f1d751
centered everything
patrickhyw Dec 31, 2024
e8475d8
can now select table and column for index
patrickhyw Dec 31, 2024
1bc297f
qknobs different layout
patrickhyw Dec 31, 2024
4d21c08
qknobs style
patrickhyw Dec 31, 2024
c5d5967
added checkboxes to welcome page
patrickhyw Dec 31, 2024
eb85e36
added popup with queries to welcome
patrickhyw Dec 31, 2024
43607d7
moved popup button outside of form container
patrickhyw Dec 31, 2024
89941a2
moved popup to botleft
patrickhyw Jan 1, 2025
83b7bfa
added view queries to all screens (as component)
patrickhyw Jan 1, 2025
14bcde1
added print json button to all pages
patrickhyw Jan 1, 2025
8d9067e
name and email only show if the checkboxes are clicked
patrickhyw Jan 1, 2025
c82e76f
now adding indexes to json
patrickhyw Jan 1, 2025
7a0e0d8
now saving sysknobs
patrickhyw Jan 1, 2025
2279a0a
now adding qknobs to json
patrickhyw Jan 1, 2025
9f243cd
upgraded next buttons
patrickhyw Jan 1, 2025
9f5b94f
added info to welcome
patrickhyw Jan 1, 2025
bb729d9
task gray box
patrickhyw Jan 2, 2025
e8270ab
added hover to buttons
patrickhyw Jan 2, 2025
2138b8e
query_html_gen.py
patrickhyw Jan 2, 2025
61fda50
query 11a
patrickhyw Jan 2, 2025
2d63d01
now loading queries dynamically
patrickhyw Jan 2, 2025
05ec2f2
query 6a
patrickhyw Jan 2, 2025
3b6ffef
q3b
patrickhyw Jan 2, 2025
93d8fb7
made indexes page look better
patrickhyw Jan 2, 2025
1d3433e
now saving qknobs across query pages
patrickhyw Jan 2, 2025
d0ca826
fixed how queries are loaded
patrickhyw Jan 2, 2025
38d36e8
Reset button
patrickhyw Jan 2, 2025
3553e96
styled close button
patrickhyw Jan 2, 2025
9a2d43b
fixed some stuff for view queries
patrickhyw Jan 2, 2025
f27a8a4
added step nums
patrickhyw Jan 2, 2025
4754ec5
moved queries to right side
patrickhyw Jan 2, 2025
af18934
fixed query loading issue
patrickhyw Jan 2, 2025
6048082
fixed small things
patrickhyw Jan 2, 2025
812f16d
simplified qknobs
patrickhyw Jan 2, 2025
53f430e
added cmudb logo
patrickhyw Jan 3, 2025
9b03af7
better cmudb logo
patrickhyw Jan 3, 2025
7fbe4e3
added timer
patrickhyw Jan 3, 2025
390625d
readme
patrickhyw Jan 3, 2025
c002fb2
q2a
patrickhyw Jan 3, 2025
8b631be
basic backend
patrickhyw Jan 3, 2025
15f4946
fmt
patrickhyw Jan 3, 2025
37ad580
moved default scale factor to infra_paths
patrickhyw Jan 3, 2025
ff82035
moved time_workload into PostgresConn
patrickhyw Jan 3, 2025
306107a
backend now runs (w/o config)
patrickhyw Jan 3, 2025
b9a0331
confetti page
patrickhyw Jan 3, 2025
4313452
Merge remote-tracking branch 'refs/remotes/origin/demo' into demo
patrickhyw Jan 3, 2025
8dde90f
italics
patrickhyw Jan 3, 2025
840ba63
added time up popup to all pages
patrickhyw Jan 4, 2025
6eccc53
times up now saves data in all screens
patrickhyw Jan 4, 2025
5046b8d
changed timer back to 60
patrickhyw Jan 4, 2025
9ba52c5
made backend a class
patrickhyw Jan 4, 2025
4e983c2
mock backend server
patrickhyw Jan 4, 2025
90b84e2
hooked up frontend to mock backend
patrickhyw Jan 4, 2025
cbc9195
leaderboard -> results
patrickhyw Jan 4, 2025
4eed151
leaderboard now populates based on data from backend
patrickhyw Jan 4, 2025
dd5e085
added dot animation
patrickhyw Jan 4, 2025
1a3c910
now stopping barrel animation
patrickhyw Jan 4, 2025
bb152a4
now showing runtime on submission screen
patrickhyw Jan 4, 2025
395b822
made leaderboard its own endpoint
patrickhyw Jan 4, 2025
e61186c
done with leaderboard
patrickhyw Jan 5, 2025
9b6a427
changed cursors
patrickhyw Jan 5, 2025
bc59281
hid email
patrickhyw Jan 5, 2025
00bf6ec
now runs on nuc
patrickhyw Jan 5, 2025
18c1b69
backend benchmarking
patrickhyw Jan 7, 2025
4b97429
removed benchmarking code
patrickhyw Jan 7, 2025
bce8085
added icons
patrickhyw Jan 7, 2025
94e87d2
q4a
patrickhyw Jan 7, 2025
0f4cd36
added accordion menu and pretty query printing
patrickhyw Jan 7, 2025
5cc016e
logo is now fixed, not absolute
patrickhyw Jan 7, 2025
ffb8773
select font size
patrickhyw Jan 7, 2025
9409322
sizing
patrickhyw Jan 7, 2025
5112cb8
60 second timer
patrickhyw Jan 7, 2025
457682a
fmt and mypy
patrickhyw Jan 7, 2025
2b9357a
qol for time workload backend (working)
patrickhyw Jan 7, 2025
8a7421b
small changes
patrickhyw Jan 8, 2025
55b63bb
changes
patrickhyw Jan 8, 2025
fc2767f
consolidated pg constants into gymlib
patrickhyw Jan 9, 2025
805568c
added pgtune. fixed bug in pg_conn
patrickhyw Jan 9, 2025
107fb57
pgtune only 10 most important knobs
patrickhyw Jan 9, 2025
3e6816d
pgtune round numbers
patrickhyw Jan 9, 2025
e07162f
comment
patrickhyw Jan 9, 2025
49f4d4a
now config idx in json
patrickhyw Jan 9, 2025
ca3b71b
protox config
patrickhyw Jan 9, 2025
e987cbe
protox without really bad knobs and with less indexes
patrickhyw Jan 9, 2025
ce045c0
now running app itself
patrickhyw Jan 9, 2025
7808095
pgtune nuc
patrickhyw Jan 9, 2025
d72d19d
basic backend leaderboard
patrickhyw Jan 9, 2025
9a865d1
got rid of rank cuz it was confusing
patrickhyw Jan 9, 2025
e101eaf
tofixed
patrickhyw Jan 9, 2025
4aea0d8
best runtime
patrickhyw Jan 9, 2025
0bdddfb
leaderboard works with no name. moved base runtime to submission
patrickhyw Jan 9, 2025
56a006f
added machine info
patrickhyw Jan 9, 2025
ef0f0ba
machine info in welcome
patrickhyw Jan 9, 2025
777e412
better styling
patrickhyw Jan 9, 2025
497bb29
can now handle no indexes/sysknobs/qknobs. no more type in indexes
patrickhyw Jan 9, 2025
bf95319
includes in index
patrickhyw Jan 10, 2025
4a1ed95
index instructions
patrickhyw Jan 10, 2025
488fce3
max 5 indexes
patrickhyw Jan 10, 2025
25eb32b
dup index deetection
patrickhyw Jan 10, 2025
fa3ac86
b+
patrickhyw Jan 10, 2025
008c08c
simplified table spec
patrickhyw Jan 10, 2025
d055eea
added all tables
patrickhyw Jan 10, 2025
87e7670
formatted create and table
patrickhyw Jan 10, 2025
b6f0a92
top margin
patrickhyw Jan 10, 2025
4e26cc8
filled in sysknobs
patrickhyw Jan 11, 2025
67348c4
select width
patrickhyw Jan 11, 2025
d54fb0b
fmt and mypy
patrickhyw Jan 11, 2025
7b1df79
handling include null
patrickhyw Jan 11, 2025
2f04062
simplified qknobs in protox
patrickhyw Jan 11, 2025
c43aae2
made costs round nums
patrickhyw Jan 11, 2025
bea48f9
reordered knobs in protox
patrickhyw Jan 11, 2025
17da6bc
qknobs
patrickhyw Jan 11, 2025
0920ea1
leaderboard name now req
patrickhyw Jan 12, 2025
bed102f
your results
patrickhyw Jan 12, 2025
a58a246
demo vid
patrickhyw Jan 17, 2025
c2fcc06
qknobs -> opthints
patrickhyw Jan 17, 2025
98482cb
test leaderboard
patrickhyw Jun 3, 2025
dbd50f2
dbgym_demo_config.yaml
patrickhyw Jun 3, 2025
3cc6f86
leaderboard
patrickhyw Jun 14, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,5 @@ build/
workspace/
default_*_benchbase_config_*.xml
*.egg-info/
*.code-workspace
*.code-workspace
.DS_Store
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# 🛢️ Database Gym 🏋️
[\[Slides\]](http://www.cidrdb.org/cidr2023/slides/p27-lim-slides.pdf) [\[Paper\]](https://www.cidrdb.org/cidr2023/papers/p27-lim.pdf)

*An end-to-end research vehicle for the field of self-driving DBMSs.*
*An end-to-end research vehicle for self-driving databases.*

## Quickstart

Expand Down
1 change: 0 additions & 1 deletion benchmark/constants.py

This file was deleted.

4 changes: 2 additions & 2 deletions benchmark/job/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@

import click
from gymlib.infra_paths import (
DEFAULT_SCALE_FACTOR,
get_tables_dirname,
get_workload_dirname,
get_workload_suffix,
)
from gymlib.workspace import DBGymWorkspace, fully_resolve_path, name_to_linkname

from benchmark.constants import DEFAULT_SCALE_FACTOR
from util.shell import subprocess_run

JOB_TABLES_URL = "https://event.cwi.nl/da/job/imdb.tgz"
Expand Down Expand Up @@ -268,7 +268,7 @@ def _generate_job_workload(
elif query_subset == "a":
query_names = [qname for qname in JOB_QUERY_NAMES if qname[-1] == "a"]
elif query_subset == "demo":
query_names = [f"{i}a" for i in range(1, 6)]
query_names = ["1a", "2a", "4a"]
else:
assert False

Expand Down
3 changes: 1 addition & 2 deletions benchmark/job/load_info.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
from pathlib import Path
from typing import Optional

from gymlib.infra_paths import get_tables_symlink_path
from gymlib.infra_paths import DEFAULT_SCALE_FACTOR, get_tables_symlink_path
from gymlib.workspace import DBGymWorkspace, fully_resolve_path

from benchmark.constants import DEFAULT_SCALE_FACTOR
from dbms.load_info_base_class import LoadInfoBaseClass

JOB_SCHEMA_FNAME = "job_schema.sql"
Expand Down
2 changes: 1 addition & 1 deletion benchmark/tests/integtest_benchmark.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
from pathlib import Path

from gymlib.infra_paths import (
DEFAULT_SCALE_FACTOR,
get_tables_symlink_path,
get_workload_suffix,
get_workload_symlink_path,
Expand All @@ -14,7 +15,6 @@
)

# It's ok to import private functions from the benchmark module because this is an integration test.
from benchmark.constants import DEFAULT_SCALE_FACTOR
from benchmark.job.cli import _job_tables, _job_workload
from benchmark.tpch.cli import _tpch_tables, _tpch_workload
from benchmark.tpch.constants import DEFAULT_TPCH_SEED
Expand Down
2 changes: 1 addition & 1 deletion benchmark/tpch/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import click
from gymlib.infra_paths import (
DEFAULT_SCALE_FACTOR,
get_scale_factor_string,
get_tables_dirname,
get_tables_symlink_path,
Expand All @@ -16,7 +17,6 @@
name_to_linkname,
)

from benchmark.constants import DEFAULT_SCALE_FACTOR
from benchmark.tpch.constants import DEFAULT_TPCH_SEED, NUM_TPCH_QUERIES
from util.shell import subprocess_run

Expand Down
20 changes: 11 additions & 9 deletions dbms/postgres/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,21 @@
import click
import sqlalchemy
from gymlib.infra_paths import (
DEFAULT_SCALE_FACTOR,
get_dbdata_tgz_symlink_path,
get_pgbin_symlink_path,
get_repo_symlink_path,
)
from gymlib.pg import create_sqlalchemy_conn, sql_file_execute
from gymlib.pg import (
DBGYM_POSTGRES_DBNAME,
DBGYM_POSTGRES_PASS,
DBGYM_POSTGRES_USER,
DEFAULT_POSTGRES_DBNAME,
DEFAULT_POSTGRES_PORT,
SHARED_PRELOAD_LIBRARIES,
create_sqlalchemy_conn,
sql_file_execute,
)
from gymlib.workspace import (
WORKSPACE_PATH_PLACEHOLDER,
DBGymWorkspace,
Expand All @@ -27,19 +37,11 @@
)
from sqlalchemy import text

from benchmark.constants import DEFAULT_SCALE_FACTOR
from benchmark.job.load_info import JobLoadInfo
from benchmark.tpch.load_info import TpchLoadInfo
from dbms.load_info_base_class import LoadInfoBaseClass
from util.shell import subprocess_run

DBGYM_POSTGRES_USER = "dbgym_user"
DBGYM_POSTGRES_PASS = "dbgym_pass"
DBGYM_POSTGRES_DBNAME = "dbgym"
DEFAULT_POSTGRES_DBNAME = "postgres"
DEFAULT_POSTGRES_PORT = 5432
SHARED_PRELOAD_LIBRARIES = "boot,pg_hint_plan,pg_prewarm"


@click.group(name="postgres")
@click.pass_obj
Expand Down
42 changes: 42 additions & 0 deletions demo/assets/checkmark.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
57 changes: 57 additions & 0 deletions demo/assets/cmu-db-logo-barrel.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading