Skip to content

Commit 52a4efa

Browse files
committed
Document the schema of benchmark_request
1 parent ce323af commit 52a4efa

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

database/schema.md

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -258,3 +258,41 @@ aid benchmark error
258258
---------- --- -----
259259
1 syn-1.0.89 Failed to compile...
260260
```
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

Comments
 (0)