mirror of
https://github.com/ARM-software/workload-automation.git
synced 2025-01-19 04:21:17 +00:00
250bf61c4b
Update the postgres database schema: - Rename "resourcegetters" schema to "resource_getters" for consistency - Rename "retreies" colum to "retry" to better relflect it purpose - Store additional information including: - POD serialization data - Missing target information - JSON formatted runstate
193 lines
4.9 KiB
SQL
193 lines
4.9 KiB
SQL
--!VERSION!1.2!ENDVERSION!
|
|
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
|
|
CREATE EXTENSION IF NOT EXISTS "lo";
|
|
|
|
-- In future, it may be useful to implement rules on which Parameter oid fields can be none depeendent on the value in the type column;
|
|
|
|
DROP TABLE IF EXISTS DatabaseMeta;
|
|
DROP TABLE IF EXISTS Parameters;
|
|
DROP TABLE IF EXISTS Classifiers;
|
|
DROP TABLE IF EXISTS LargeObjects;
|
|
DROP TABLE IF EXISTS Artifacts;
|
|
DROP TABLE IF EXISTS Metrics;
|
|
DROP TABLE IF EXISTS Augmentations;
|
|
DROP TABLE IF EXISTS Jobs_Augs;
|
|
DROP TABLE IF EXISTS ResourceGetters;
|
|
DROP TABLE IF EXISTS Resource_Getters;
|
|
DROP TABLE IF EXISTS Events;
|
|
DROP TABLE IF EXISTS Targets;
|
|
DROP TABLE IF EXISTS Jobs;
|
|
DROP TABLE IF EXISTS Runs;
|
|
|
|
DROP TYPE IF EXISTS status_enum;
|
|
DROP TYPE IF EXISTS param_enum;
|
|
|
|
CREATE TYPE status_enum AS ENUM ('UNKNOWN(0)','NEW(1)','PENDING(2)','STARTED(3)','CONNECTED(4)', 'INITIALIZED(5)', 'RUNNING(6)', 'OK(7)', 'PARTIAL(8)', 'FAILED(9)', 'ABORTED(10)', 'SKIPPED(11)');
|
|
|
|
CREATE TYPE param_enum AS ENUM ('workload', 'resource_getter', 'augmentation', 'device', 'runtime', 'boot');
|
|
|
|
-- In future, it might be useful to create an ENUM type for the artifact kind, or simply a generic enum type;
|
|
|
|
CREATE TABLE DatabaseMeta (
|
|
oid uuid NOT NULL,
|
|
schema_major int,
|
|
schema_minor int,
|
|
PRIMARY KEY (oid)
|
|
);
|
|
|
|
CREATE TABLE Runs (
|
|
oid uuid NOT NULL,
|
|
event_summary text,
|
|
basepath text,
|
|
status status_enum,
|
|
timestamp timestamp,
|
|
run_name text,
|
|
project text,
|
|
project_stage text,
|
|
retry_on_status status_enum[],
|
|
max_retries int,
|
|
bail_on_init_failure boolean,
|
|
allow_phone_home boolean,
|
|
run_uuid uuid,
|
|
start_time timestamp,
|
|
end_time timestamp,
|
|
duration float,
|
|
metadata jsonb,
|
|
_pod_version int,
|
|
_pod_serialization_version int,
|
|
state jsonb,
|
|
PRIMARY KEY (oid)
|
|
);
|
|
|
|
CREATE TABLE Jobs (
|
|
oid uuid NOT NULL,
|
|
run_oid uuid NOT NULL references Runs(oid),
|
|
status status_enum,
|
|
retry int,
|
|
label text,
|
|
job_id text,
|
|
iterations int,
|
|
workload_name text,
|
|
metadata jsonb,
|
|
_pod_version int,
|
|
_pod_serialization_version int,
|
|
PRIMARY KEY (oid)
|
|
);
|
|
|
|
CREATE TABLE Targets (
|
|
oid uuid NOT NULL,
|
|
run_oid uuid NOT NULL references Runs(oid),
|
|
target text,
|
|
cpus text[],
|
|
os text,
|
|
os_version jsonb,
|
|
hostid int,
|
|
hostname text,
|
|
abi text,
|
|
is_rooted boolean,
|
|
kernel_version text,
|
|
kernel_release text,
|
|
kernel_sha1 text,
|
|
kernel_config text[],
|
|
sched_features text[],
|
|
page_size_kb int,
|
|
screen_resolution int[],
|
|
prop json,
|
|
android_id text,
|
|
_pod_version int,
|
|
_pod_serialization_version int,
|
|
PRIMARY KEY (oid)
|
|
);
|
|
|
|
CREATE TABLE Events (
|
|
oid uuid NOT NULL,
|
|
run_oid uuid NOT NULL references Runs(oid),
|
|
job_oid uuid references Jobs(oid),
|
|
timestamp timestamp,
|
|
message text,
|
|
_pod_version int,
|
|
_pod_serialization_version int,
|
|
PRIMARY KEY (oid)
|
|
);
|
|
|
|
CREATE TABLE Resource_Getters (
|
|
oid uuid NOT NULL,
|
|
run_oid uuid NOT NULL references Runs(oid),
|
|
name text,
|
|
PRIMARY KEY (oid)
|
|
);
|
|
|
|
CREATE TABLE Augmentations (
|
|
oid uuid NOT NULL,
|
|
run_oid uuid NOT NULL references Runs(oid),
|
|
name text,
|
|
PRIMARY KEY (oid)
|
|
);
|
|
|
|
CREATE TABLE Jobs_Augs (
|
|
oid uuid NOT NULL,
|
|
job_oid uuid NOT NULL references Jobs(oid),
|
|
augmentation_oid uuid NOT NULL references Augmentations(oid),
|
|
PRIMARY KEY (oid)
|
|
);
|
|
|
|
CREATE TABLE Metrics (
|
|
oid uuid NOT NULL,
|
|
run_oid uuid NOT NULL references Runs(oid),
|
|
job_oid uuid references Jobs(oid),
|
|
name text,
|
|
value double precision,
|
|
units text,
|
|
lower_is_better boolean,
|
|
_pod_version int,
|
|
_pod_serialization_version int,
|
|
PRIMARY KEY (oid)
|
|
);
|
|
|
|
CREATE TABLE LargeObjects (
|
|
oid uuid NOT NULL,
|
|
lo_oid lo NOT NULL,
|
|
PRIMARY KEY (oid)
|
|
);
|
|
|
|
-- Trigger that allows you to manage large objects from the LO table directly;
|
|
CREATE TRIGGER t_raster BEFORE UPDATE OR DELETE ON LargeObjects
|
|
FOR EACH ROW EXECUTE PROCEDURE lo_manage(lo_oid);
|
|
|
|
CREATE TABLE Artifacts (
|
|
oid uuid NOT NULL,
|
|
run_oid uuid NOT NULL references Runs(oid),
|
|
job_oid uuid references Jobs(oid),
|
|
name text,
|
|
large_object_uuid uuid NOT NULL references LargeObjects(oid),
|
|
description text,
|
|
kind text,
|
|
_pod_version int,
|
|
_pod_serialization_version int,
|
|
PRIMARY KEY (oid)
|
|
);
|
|
|
|
CREATE TABLE Classifiers (
|
|
oid uuid NOT NULL,
|
|
artifact_oid uuid references Artifacts(oid),
|
|
metric_oid uuid references Metrics(oid),
|
|
job_oid uuid references Jobs(oid),
|
|
run_oid uuid references Runs(oid),
|
|
key text,
|
|
value text,
|
|
PRIMARY KEY (oid)
|
|
);
|
|
|
|
CREATE TABLE Parameters (
|
|
oid uuid NOT NULL,
|
|
run_oid uuid NOT NULL references Runs(oid),
|
|
job_oid uuid references Jobs(oid),
|
|
augmentation_oid uuid references Augmentations(oid),
|
|
resource_getter_oid uuid references Resource_Getters(oid),
|
|
name text,
|
|
value text,
|
|
value_type text,
|
|
type param_enum,
|
|
PRIMARY KEY (oid)
|
|
);
|