From Code to Community: Sponsoring The Perl and Raku Conference 2025 Learn more

CREATE DATABASE helios_db;
# Uncomment the lines below and edit them to match security policies for your
# environment. The Helios user only needs the access outlined in the GRANT
# statement below for the core Helios system to function.
#CREATE USER 'helios'@'%' IDENTIFIED BY '';
#GRANT INSERT,DELETE,UPDATE,SELECT ON helios_db.* TO 'helios'@'%';
#
USE helios_db;
CREATE TABLE funcmap (
funcid INT UNSIGNED PRIMARY KEY NOT NULL AUTO_INCREMENT,
funcname VARCHAR(255) NOT NULL,
UNIQUE(funcname)
);
CREATE TABLE job (
jobid BIGINT UNSIGNED PRIMARY KEY NOT NULL AUTO_INCREMENT,
funcid INT UNSIGNED NOT NULL,
arg MEDIUMBLOB,
uniqkey VARCHAR(255) NULL,
insert_time INTEGER UNSIGNED,
run_after INTEGER UNSIGNED NOT NULL,
grabbed_until INTEGER UNSIGNED NOT NULL,
priority SMALLINT UNSIGNED,
coalesce VARCHAR(255),
INDEX (funcid, run_after),
UNIQUE(funcid, uniqkey),
INDEX (funcid, coalesce)
);
CREATE TABLE note (
jobid BIGINT UNSIGNED NOT NULL,
notekey VARCHAR(255),
PRIMARY KEY (jobid, notekey),
value MEDIUMBLOB
);
CREATE TABLE error (
error_time INTEGER UNSIGNED NOT NULL,
jobid BIGINT UNSIGNED NOT NULL,
message VARCHAR(255) NOT NULL,
funcid INT UNSIGNED NOT NULL DEFAULT 0,
INDEX (funcid, error_time),
INDEX (error_time),
INDEX (jobid)
);
CREATE TABLE exitstatus (
jobid BIGINT UNSIGNED PRIMARY KEY NOT NULL,
funcid INT UNSIGNED NOT NULL DEFAULT 0,
status SMALLINT UNSIGNED,
completion_time INTEGER UNSIGNED,
delete_after INTEGER UNSIGNED,
INDEX (funcid),
INDEX (delete_after)
);
CREATE TABLE helios_params_tb (
host VARCHAR(64),
worker_class VARCHAR(64),
param VARCHAR(64),
value VARCHAR(128)
);
CREATE TABLE helios_class_map (
job_type VARCHAR(32),
job_class VARCHAR(64)
);
CREATE TABLE helios_job_history_tb (
jobid BIGINT UNSIGNED NOT NULL,
funcid INT UNSIGNED NOT NULL,
arg MEDIUMBLOB,
uniqkey VARCHAR(255) NULL,
insert_time INTEGER UNSIGNED,
run_after INTEGER UNSIGNED NOT NULL,
grabbed_until INTEGER UNSIGNED NOT NULL,
priority SMALLINT UNSIGNED,
coalesce VARCHAR(255),
complete_time INTEGER UNSIGNED NOT NULL,
exitstatus SMALLINT UNSIGNED,
INDEX(jobid)
);
CREATE TABLE helios_log_tb (
log_time INTEGER UNSIGNED NOT NULL,
host VARCHAR(64),
process_id INTEGER UNSIGNED,
jobid BIGINT UNSIGNED,
funcid INT UNSIGNED,
job_class VARCHAR(64),
priority VARCHAR(20),
message MEDIUMBLOB,
INDEX(log_time)
);
CREATE TABLE helios_worker_registry_tb (
register_time INTEGER UNSIGNED NOT NULL,
start_time INTEGER UNSIGNED,
worker_class VARCHAR(64),
worker_version VARCHAR(10),
host VARCHAR(64),
process_id INTEGER UNSIGNED
);