2024-02-19 19:20:23 +05:30

175 lines
5.9 KiB
SQL

CREATE TABLE IF NOT EXISTS job (
id INTEGER AUTO_INCREMENT 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 TINYINT NOT NULL DEFAULT 1 CHECK(smt IN (0, 1 )),
exclusive TINYINT NOT NULL DEFAULT 1 CHECK(exclusive IN (0, 1, 2)),
monitoring_status TINYINT 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 INTEGER 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 tinyint NOT NULL DEFAULT 0, /* col called "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);
CREATE TABLE IF NOT EXISTS notifications (
id INT AUTO_INCREMENT PRIMARY KEY,
message TEXT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE IF NOT EXISTS influxdb_configurations (
id INT AUTO_INCREMENT PRIMARY KEY,
type VARCHAR(255) NOT NULL,
database_name VARCHAR(255) NOT NULL,
host VARCHAR(255) NOT NULL,
port INT NOT NULL,
user VARCHAR(255) NOT NULL,
password VARCHAR(255) NOT NULL,
organization VARCHAR(255) NOT NULL,
ssl_enabled BOOLEAN NOT NULL,
batch_size INT NOT NULL,
retry_interval VARCHAR(255) NOT NULL,
retry_exponential_base INT NOT NULL,
max_retries INT NOT NULL,
max_retry_time VARCHAR(255) NOT NULL,
meta_as_tags TEXT
);
CREATE TABLE IF NOT EXISTS realtime_logs (
id INT AUTO_INCREMENT PRIMARY KEY,
log_message TEXT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE IF NOT EXISTS lvm_conf (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(255) NOT NULL,
minAvailableSpaceGB FLOAT NOT NULL,
maxAvailableSpaceGB FLOAT NOT NULL
);
-- linux lvm schemas
CREATE TABLE IF NOT EXISTS machines (
machine_id VARCHAR(255) PRIMARY KEY,
hostname VARCHAR(255) NOT NULL,
os_version VARCHAR(255) NOT NULL,
ip_address VARCHAR(255) NOT NULL
);
CREATE TABLE IF NOT EXISTS logical_volumes (
lv_id INT AUTO_INCREMENT PRIMARY KEY,
machine_id VARCHAR(255) NOT NULL,
lv_name VARCHAR(255) NOT NULL,
vg_name VARCHAR(255) NOT NULL,
lv_attr VARCHAR(255) NOT NULL,
lv_size VARCHAR(255) NOT NULL,
FOREIGN KEY (machine_id) REFERENCES machines(machine_id)
);
CREATE TABLE IF NOT EXISTS volume_groups (
vg_id INT AUTO_INCREMENT PRIMARY KEY,
machine_id VARCHAR(255) NOT NULL,
vg_name VARCHAR(255) NOT NULL,
pv_count VARCHAR(255) NOT NULL,
lv_count VARCHAR(255) NOT NULL,
snap_count VARCHAR(255) NOT NULL,
vg_attr VARCHAR(255) NOT NULL,
vg_size VARCHAR(255) NOT NULL,
vg_free VARCHAR(255) NOT NULL,
FOREIGN KEY (machine_id) REFERENCES machines(machine_id)
);
CREATE TABLE IF NOT EXISTS physical_volumes (
pv_id INT AUTO_INCREMENT PRIMARY KEY,
machine_id VARCHAR(255) NOT NULL,
pv_name VARCHAR(255) NOT NULL,
vg_name VARCHAR(255) NOT NULL,
pv_fmt VARCHAR(255) NOT NULL,
pv_attr VARCHAR(255) NOT NULL,
pv_size VARCHAR(255) NOT NULL,
pv_free VARCHAR(255) NOT NULL,
FOREIGN KEY (machine_id) REFERENCES machines(machine_id)
);
CREATE TABLE IF NOT EXISTS lv_storage_issuer (
id INT AUTO_INCREMENT PRIMARY KEY,
machine_serial_number VARCHAR(255) NOT NULL,
hostname VARCHAR(255) NOT NULL,
username VARCHAR(255) NOT NULL,
minAvailableSpaceGB FLOAT NOT NULL,
maxAvailableSpaceGB FLOAT NOT NULL,
FOREIGN KEY (machine_serial_number) REFERENCES machines(machine_id)
);
CREATE TABLE IF NOT EXISTS machine_conf (
id INT AUTO_INCREMENT PRIMARY KEY,
machine_serial_number VARCHAR(255) NOT NULL,
hostname VARCHAR(255) NOT NULL,
username VARCHAR(255) NOT NULL,
passphrase LONGTEXT,
port_number INT NOT NULL,
password VARCHAR(255),
host_key VARCHAR(255),
folder_path VARCHAR(255) ,
FOREIGN KEY (machine_serial_number) REFERENCES machines(machine_id)
);
CREATE TABLE IF NOT EXISTS file_stash_url (
id INT AUTO_INCREMENT PRIMARY KEY,
url VARCHAR(255) NOT NULL
);