mirror of
https://github.com/ClusterCockpit/cc-backend
synced 2025-08-06 11:10:35 +02:00
db pgx backend
This commit is contained in:
@@ -0,0 +1,6 @@
|
||||
DROP TABLE IF EXISTS job_meta;
|
||||
DROP TABLE IF EXISTS configuration;
|
||||
DROP TABLE IF EXISTS jobtag;
|
||||
DROP TABLE IF EXISTS tag;
|
||||
DROP TABLE IF EXISTS "user";
|
||||
DROP TABLE IF EXISTS schema_migrations;
|
@@ -0,0 +1,68 @@
|
||||
CREATE TABLE IF NOT EXISTS job (
|
||||
id SERIAL PRIMARY KEY,
|
||||
job_id BIGINT NOT NULL,
|
||||
cluster VARCHAR(255) NOT NULL,
|
||||
subcluster VARCHAR(255) NOT NULL,
|
||||
start_time BIGINT NOT NULL, -- Unix timestamp
|
||||
|
||||
"user" VARCHAR(255) NOT NULL,
|
||||
project VARCHAR(255) NOT NULL,
|
||||
"partition" VARCHAR(255) NOT NULL,
|
||||
array_job_id BIGINT NOT NULL,
|
||||
duration INT NOT NULL DEFAULT 0,
|
||||
walltime INT NOT NULL DEFAULT 0,
|
||||
job_state VARCHAR(255) NOT NULL
|
||||
CHECK (job_state IN ('running', 'completed', 'failed', 'cancelled',
|
||||
'stopped', 'timeout', 'preempted', 'out_of_memory')),
|
||||
meta_data TEXT, -- JSON
|
||||
resources TEXT NOT NULL, -- JSON
|
||||
|
||||
num_nodes INT NOT NULL,
|
||||
num_hwthreads INT NOT NULL,
|
||||
num_acc INT NOT NULL,
|
||||
smt SMALLINT NOT NULL DEFAULT 1 CHECK (smt IN (0, 1)),
|
||||
exclusive SMALLINT NOT NULL DEFAULT 1 CHECK (exclusive IN (0, 1, 2)),
|
||||
monitoring_status SMALLINT NOT NULL DEFAULT 1 CHECK (monitoring_status IN (0, 1, 2, 3)),
|
||||
|
||||
mem_used_max REAL NOT NULL DEFAULT 0.0,
|
||||
flops_any_avg REAL NOT NULL DEFAULT 0.0,
|
||||
mem_bw_avg REAL NOT NULL DEFAULT 0.0,
|
||||
load_avg REAL NOT NULL DEFAULT 0.0,
|
||||
net_bw_avg REAL NOT NULL DEFAULT 0.0,
|
||||
net_data_vol_total REAL NOT NULL DEFAULT 0.0,
|
||||
file_bw_avg REAL NOT NULL DEFAULT 0.0,
|
||||
file_data_vol_total REAL NOT NULL DEFAULT 0.0,
|
||||
UNIQUE (job_id, cluster, start_time)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS tag (
|
||||
id SERIAL PRIMARY KEY,
|
||||
tag_type VARCHAR(255) NOT NULL,
|
||||
tag_name VARCHAR(255) NOT NULL,
|
||||
UNIQUE (tag_type, tag_name)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS jobtag (
|
||||
job_id INTEGER,
|
||||
tag_id INTEGER,
|
||||
PRIMARY KEY (job_id, tag_id),
|
||||
FOREIGN KEY (job_id) REFERENCES job (id) ON DELETE CASCADE,
|
||||
FOREIGN KEY (tag_id) REFERENCES tag (id) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS "user" (
|
||||
username VARCHAR(255) PRIMARY KEY NOT NULL,
|
||||
password VARCHAR(255) DEFAULT NULL,
|
||||
ldap SMALLINT NOT NULL DEFAULT 0, -- "ldap" for historic reasons, fills the "AuthSource"
|
||||
name VARCHAR(255) DEFAULT NULL,
|
||||
roles VARCHAR(255) NOT NULL DEFAULT '[]',
|
||||
email VARCHAR(255) DEFAULT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS configuration (
|
||||
username VARCHAR(255),
|
||||
confkey VARCHAR(255),
|
||||
value VARCHAR(255),
|
||||
PRIMARY KEY (username, confkey),
|
||||
FOREIGN KEY (username) REFERENCES "user" (username) ON DELETE CASCADE ON UPDATE NO ACTION
|
||||
);
|
@@ -0,0 +1,8 @@
|
||||
DROP INDEX IF EXISTS job_stats;
|
||||
DROP INDEX IF EXISTS job_by_user;
|
||||
DROP INDEX IF EXISTS job_by_starttime;
|
||||
DROP INDEX IF EXISTS job_by_job_id;
|
||||
DROP INDEX IF EXISTS job_list;
|
||||
DROP INDEX IF EXISTS job_list_user;
|
||||
DROP INDEX IF EXISTS job_list_users;
|
||||
DROP INDEX IF EXISTS job_list_users_start;
|
@@ -0,0 +1,8 @@
|
||||
CREATE INDEX IF NOT EXISTS job_stats ON job (cluster, subcluster, "user");
|
||||
CREATE INDEX IF NOT EXISTS job_by_user ON job ("user");
|
||||
CREATE INDEX IF NOT EXISTS job_by_starttime ON job (start_time);
|
||||
CREATE INDEX IF NOT EXISTS job_by_job_id ON job (job_id);
|
||||
CREATE INDEX IF NOT EXISTS job_list ON job (cluster, job_state);
|
||||
CREATE INDEX IF NOT EXISTS job_list_user ON job ("user", cluster, job_state);
|
||||
CREATE INDEX IF NOT EXISTS job_list_users ON job ("user", job_state);
|
||||
CREATE INDEX IF NOT EXISTS job_list_users_start ON job (start_time, "user", job_state);
|
@@ -0,0 +1 @@
|
||||
ALTER TABLE user DROP COLUMN projects;
|
@@ -0,0 +1 @@
|
||||
ALTER TABLE "user" ADD COLUMN projects VARCHAR(255) NOT NULL DEFAULT '[]';
|
@@ -0,0 +1,5 @@
|
||||
ALTER TABLE job
|
||||
MODIFY `partition` VARCHAR(255) NOT NULL,
|
||||
MODIFY array_job_id BIGINT NOT NULL,
|
||||
MODIFY num_hwthreads INT NOT NULL,
|
||||
MODIFY num_acc INT NOT NULL;
|
@@ -0,0 +1,5 @@
|
||||
ALTER TABLE job
|
||||
ALTER COLUMN partition TYPE VARCHAR(255),
|
||||
ALTER COLUMN array_job_id TYPE BIGINT,
|
||||
ALTER COLUMN num_hwthreads TYPE INT,
|
||||
ALTER COLUMN num_acc TYPE INT;
|
@@ -0,0 +1,2 @@
|
||||
ALTER TABLE tag DROP COLUMN insert_time;
|
||||
ALTER TABLE jobtag DROP COLUMN insert_time;
|
@@ -0,0 +1,2 @@
|
||||
ALTER TABLE tag ADD COLUMN insert_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP;
|
||||
ALTER TABLE jobtag ADD COLUMN insert_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP;
|
@@ -0,0 +1 @@
|
||||
ALTER TABLE configuration MODIFY value VARCHAR(255);
|
@@ -0,0 +1,2 @@
|
||||
ALTER TABLE configuration
|
||||
ALTER COLUMN value TYPE TEXT;
|
@@ -0,0 +1,3 @@
|
||||
SET FOREIGN_KEY_CHECKS = 0;
|
||||
ALTER TABLE tag MODIFY id INTEGER;
|
||||
SET FOREIGN_KEY_CHECKS = 1;
|
@@ -0,0 +1,3 @@
|
||||
-- SET FOREIGN_KEY_CHECKS = 0;
|
||||
-- ALTER TABLE tag MODIFY id INTEGER AUTO_INCREMENT;
|
||||
-- SET FOREIGN_KEY_CHECKS = 1;
|
@@ -0,0 +1 @@
|
||||
DROP TABLE IF EXISTS job_meta;
|
@@ -0,0 +1,20 @@
|
||||
ALTER TABLE job ADD COLUMN energy REAL NOT NULL DEFAULT 0.0;
|
||||
|
||||
ALTER TABLE job ADD COLUMN footprint TEXT DEFAULT NULL;
|
||||
ALTER TABLE job DROP flops_any_avg;
|
||||
ALTER TABLE job DROP mem_bw_avg;
|
||||
ALTER TABLE job DROP mem_used_max;
|
||||
ALTER TABLE job DROP load_avg;
|
||||
|
||||
ALTER TABLE "user" RENAME TO users;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS job_meta (
|
||||
id SERIAL PRIMARY KEY,
|
||||
job_id BIGINT NOT NULL,
|
||||
cluster VARCHAR(255) NOT NULL,
|
||||
start_time BIGINT NOT NULL, -- Unix timestamp
|
||||
|
||||
meta_data JSONB, -- JSON
|
||||
metric_data JSONB, -- JSON
|
||||
UNIQUE (job_id, cluster, start_time)
|
||||
);
|
Reference in New Issue
Block a user