Now, the server sends the runner pretty much all run metadata. This way, the reservation the server makes for the runner is accurate, providing the runner responds with the same metadata it was sent. It also means that only the server's system clock is relevant for tie breakers, and a run's duration spans from the moment it is reserved to the moment it is saved. Also, the bench method is now always called `bench_method` and a human-readable description is stored in the database for each run.
32 lines
809 B
SQL
32 lines
809 B
SQL
CREATE TABLE runs (
|
|
id TEXT NOT NULL PRIMARY KEY,
|
|
hash TEXT NOT NULL,
|
|
bench_method TEXT NOT NULL,
|
|
start TEXT NOT NULL,
|
|
end TEXT NOT NULL,
|
|
exit_code INT NOT NULL,
|
|
|
|
FOREIGN KEY (hash) REFERENCES commits (hash) ON DELETE CASCADE
|
|
) STRICT;
|
|
|
|
CREATE TABLE run_measurements (
|
|
id TEXT NOT NULL,
|
|
name TEXT NOT NULL,
|
|
value REAL NOT NULL,
|
|
stddev REAL,
|
|
unit TEXT,
|
|
direction INT,
|
|
|
|
PRIMARY KEY (id, name),
|
|
FOREIGN KEY (id) REFERENCES runs (id) ON DELETE CASCADE
|
|
) STRICT;
|
|
|
|
CREATE TABLE run_output (
|
|
id TEXT NOT NULL,
|
|
idx INT NOT NULL,
|
|
source INT NOT NULL,
|
|
text TEXT NOT NULL,
|
|
|
|
PRIMARY KEY (id, idx),
|
|
FOREIGN KEY (id) REFERENCES runs (id) ON DELETE CASCADE
|
|
) STRICT;
|