You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: database/schema.md
+38Lines changed: 38 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -258,3 +258,41 @@ aid benchmark error
258
258
---------- --- -----
259
259
1 syn-1.0.89 Failed to compile...
260
260
```
261
+
262
+
263
+
## New benchmarking design
264
+
We are currently implementing a new design for dispatching benchmarks to collector(s) and storing
265
+
them in the database. It will support new use-cases, like backfilling of new benchmarks into a parent
266
+
commit and primarily benchmarking with multiple collectors (and multiple hardware architectures) in
267
+
parallel.
268
+
269
+
The tables below are a part of the new scheme.
270
+
271
+
### benchmark_request
272
+
273
+
Represents a single request for performing a benchmark collection. Each request can be one of three types:
274
+
275
+
* Master: benchmark a merged master commit
276
+
* Release: benchmark a published stable or beta compiler toolchain
277
+
* Try: benchmark a try build on a PR
278
+
279
+
Columns:
280
+
281
+
***id** (`int`): Unique ID.
282
+
***tag** (`text`): Identifier of the compiler toolchain that should be benchmarked.
283
+
* Commit SHA for master/try requests or release name (e.g. `1.80.0`) for release requests.
284
+
* Can be `NULL` for try requests that were queued for a perf. run, but their compiler artifacts haven't been built yet.
285
+
***parent_sha** (`text`): Parent SHA of the benchmarked commit.
286
+
* Can be `NULL` for try requests without compiler artifacts.
287
+
***commit_type** (`text NOT NULL`): One of `master`, `try` or `release`.
288
+
***pr** (`int`): Pull request number associated with the master/try commit.
289
+
*`NULL` for release requests.
290
+
***created_at** (`timestamptz NOT NULL`): Datetime when the request was created.
291
+
***completed_at** (`timestamptz`): Datetime when the request was completed.
292
+
***status** (`text NOT NULL`): Current status of the benchmark request.
293
+
*`waiting-for-artifacts`: A try request waiting for compiler artifacts.
294
+
*`artifacts-ready`: Request that has compiler artifacts ready and can be benchmarked.
295
+
*`in-progress`: Request that is currently being benchmarked.
296
+
*`completed`: Completed request.
297
+
***backends** (`text NOT NULL`): Comma-separated list of codegen backends to benchmark. If empty, the default set of codegen backends will be benchmarked.
298
+
***profiles** (`text NOT NULL`): Comma-separated list of profiles to benchmark. If empty, the default set of profiles will be benchmarked.
0 commit comments