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

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