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 |
roles_hash |
char(64) |
SHA256 hash of the roles dictionary as they appear in the plan |
CPU Table
One entity per CPU contained within a node. Describes the set of CPUs that a node 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 |
node_id |
bigint (FK) |
Node ID relates CPUs to node |
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 |
rolemap_id |
bigint (FK) |
Rolemap ID relates error to rolemap |
role_id |
bigint (FK) |
Role ID relates error to role that generated the error |
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 |
NODE Table
One entity per node. Describes a unique node within a SUT. A node is a machine or device that runs a single instance of Linux. A SUT may be composed of 1 or more nodes.
key |
type |
description |
---|---|---|
id |
bigserial (PK) |
Primary key. Auto-incrementing integer |
sut_id |
bigint (FK) |
SUT that the node belongs to |
name |
text |
Node 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 node |
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 |
rolemap_id |
bigint (FK) |
Rolemap ID relates result to rolemap |
role_id |
bigint (FK) |
Role ID relates result to role that generated the result |
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 |
ROLE Table
Describes a role that a benchmark performs.
key |
type |
description |
---|---|---|
id |
bigserial (PK) |
Primary key. Auto-incrementing integer |
name |
text |
Role name as it appears in the plan |
benchmark_id |
bigint (FK) |
Benchmark ID relates role to benchmark |
ROLEMAP Table
Describes the mapping of a benchmark’s roles to the nodes they execute on. Composed of 1 or more rmdescs.
key |
type |
description |
---|---|---|
id |
bigserial (PK) |
Primary key. Auto-incrementing integer |
rmdescs_hash |
char(64) |
SHA256 hash of all the rmdesc structures |
RMDESC Table
Describes the mapping of a single benchmark role to the node it executes on.
key |
type |
description |
---|---|---|
id |
bigserial (PK) |
Primary key. Auto-incrementing integer |
rolemap_id |
bigint (FK) |
Rolemap that the rmdesc belongs to |
role_id |
bigint (FK) |
Role that is being mapped |
node_id |
bigint (FK) |
Node that the role is mapped to |
SUT Table
One entity per SUT. Describes a unique SUT independent of its SW profile. A SUT is composed of 1 of more nodes.
key |
type |
description |
---|---|---|
id |
bigserial (PK) |
Primary key. Auto-incrementing integer |
name |
text |
SUT friendly name as it appears in the plan |
nodes_hash |
char(64) |
SHA256 hash of all the node structures |
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 |