Resultstore Schema
Entity Relationships

BENCHMARK Table
One entity per Benchmark configuration. Describes a benchmark including its parameters.
key |
type |
description |
---|---|---|
id |
bigserial (PK) |
Primary key. Auto-incrementing integer |
suite |
text |
Benchmark suite as it appears in the plan |
name |
text |
Benchmark name as it appears in the plan |
type |
text |
Benchmark type as it appears in the plan |
image |
text |
Benchmark container image identifier as it appears in the plan |
params_hash |
char(64) |
SHA256 hash of the params dictionary as they appear in the plan |
CPU Table
One entity per CPU contained within a SUT. Describes the set of CPUs that a SUT contains.
key |
type |
description |
---|---|---|
id |
bigserial (PK) |
Primary key. Auto-incrementing integer |
desc |
text |
arch-specific descriptor, encoded in JSON |
cpu_index |
smallint |
Logical CPU index |
sut_id |
bigint (FK) |
SUT ID relates CPUs to SUT |
ERROR Table
One entity per error that occured during running the benchmark. A single benchmark invocation generates 0 or 1 error entities. If an error is generated, no results are generated for the benchmark. Examples of possible errors include the container side rejecting benchmark parameters, or the benchmark timing out.
key |
type |
description |
---|---|---|
id |
bigserial (PK) |
Primary key. Auto-incrementing integer |
timestamp |
timestamp |
Approximate time at which error was emitted. Errors are stamped when passed back to host and there is latency between generating the error on the SUT and passing it to the host |
sut_id |
bigint (FK) |
SUT ID relates error to SUT |
swprofile_id |
bigint (FK) |
swprofile ID relates error to swprofile |
benchmark_id |
bigint (FK) |
Benchmark ID relates error to Benchmark |
session_uuid |
uuid |
Universally Unique ID representing the boot session on the SUT that the result was generated during. Conceptually, a new UUID is generated each time the SUT is rebooted. Used to group results and errors from the same session |
error |
int |
Error code |
PARAM Table
One entity per param specified for a benchmark. Describes the set of parameters that a benchmark is configured with.
key |
type |
description |
---|---|---|
id |
bigserial (PK) |
Primary key. Auto-incrementing integer |
name |
text |
Param name as it appears in the plan |
value |
text |
Param value as it appears in the plan |
benchmark_id |
bigint (FK) |
Benchmark ID relates Param to Benchmark |
RESULT Table
One entity per result. A single benchmark invocation returns 1 or more results.
key |
type |
description |
---|---|---|
id |
bigserial (PK) |
Primary key. Auto-incrementing integer |
timestamp |
timestamp |
Approximate time at which result was collected. Results are stamped when passed back to host and there is latency between generating the result on the SUT and passing it to the host |
resultclass_id |
bigint (FK) |
ResultClass ID relates Result to ResultClass |
sut_id |
bigint (FK) |
SUT ID relates Result to SUT |
swprofile_id |
bigint (FK) |
swprofile ID relates Result to swprofile |
session_uuid |
uuid |
Universally Unique ID representing the boot session on the SUT that the result was generated during. Conceptually, a new UUID is generated each time the SUT is rebooted. Used to group results and errors from the same session |
value |
double |
Numerical result value |
RESULTCLASS Table
One entity per ResultClass. Every Result belongs to a single ResultClass.
key |
type |
description |
---|---|---|
id |
bigserial (PK) |
Primary key. Auto-incrementing integer |
benchmark_id |
bigint (FK) |
Benchmark ID relates ResultClass to Benchmark |
name |
text |
Result name (e.g. duration or memory) |
unit |
text |
Unit of the result value (e.g. seconds, ops/sec, etc) |
improvement |
enum |
Either ‘bigger’ or ‘smaller’: Determines whether a bigger or smaller value represents an improvement in performance |
SUT Table
One entity per SUT. Describes a unique SUT independent of its SW profile.
key |
type |
description |
---|---|---|
id |
bigserial (PK) |
Primary key. Auto-incrementing integer |
name |
text |
SUT friendly name as it appears in the plan |
host_name |
text |
result of uname -n |
architecture |
text |
result of uname -m |
cpu_count |
smallint |
Number of CPUs in the system |
cpu_info_hash |
char(64) |
SHA256 hash of all the CPU info structures |
numa_count |
smallint |
Number of NUMA nodes in the system |
ram_sz |
bigint |
Total RAM in the system in bytes |
hypervisor |
text |
The name of the hypervisor if running in a virtual machine. (e.g. ‘kvm’, ‘hyper-v’ etc.) else empty |
product_name |
text |
The DMI product_name, if available, else empty |
product_serial |
text |
The DMI product_serial, if available, else empty |
mac_addrs_hash |
char(64) |
SHA256 hash of the sorted list of permanent MAC addresses from physical devices attached to the SUT |
SWPROFILE Table
One entity per software profile. Describes a software configuration including the kernel under test.
key |
type |
description |
---|---|---|
id |
bigserial (PK) |
Primary key. Auto-incrementing integer |
name |
text |
swprofile friendly name as it appears in the plan |
kernel_name |
text |
Output from uname -r |
kernel_git_sha |
char(40) |
Git SHA for kernel source (if available) |
kernel_kconfig_full_hash |
char(64) |
SHA256 hash of kernel config (e.g. from /boot/config-$(uname -r), or /proc/config.gz) (if available) |
kernel_cmdline_full_hash |
char(64) |
SHA256 hash of /proc/cmdline |
userspace_name |
text |
Output from lsb_release -d |
cmdline |
text |
Alphabetically sorted command line parameters, as specified in plan, as a newline separated string |
sysctl |
text |
Alphabetically sorted applied sysctl settings, as specified in plan, as a newline separated string |
bootscript |
text |
Bootscript passed as it appears in plan |