Resultstore Schema

Entity Relationships

../_images/resultstoreschema.png

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