Skip to content

Database Configuration

Christopher Moussa edited this page Mar 6, 2020 · 1 revision

These are the tables that are general to Slurm's Accounting DB:

acct_coord_table ❌ federation_table ❌
acct_table ❌ qos_table
clus_res_table ❌ res_table ❌
cluster_table ❓ table_defs_table ❌
convert_version_table ❌ tres_table
txn_table ❓ user_table

For any one cluster, the following tables exist:

corona_assoc_usage_day_table corona_assoc_usage_hour_table
corona_assoc_usage_month_table corona_event_table❓
corona_job_table ❌ corona_usage_day_table
corona_last_ran_table corona_usage_month_table
corona_step_table corona_wckey_usage_day_table
corona_assoc_table corona_wckey_usage_month_table
corona_resv_table ❌ corona_wckey_usage_hour_table
corona_suspend_table ❌ corona_wckey_table
corona_usage_hour_table

The following are the tables Ryan Day explained were relevant to accounting:

<cluster_name>_assoc_table

  • tables with a unique id (int) for each user/bank or user/wckey combination
  • also contains various limits (maxjobs, maxnodes, etc), share and priority information, and qos available for each user/bank or user/wckey
table structure
Field Type Null Key Default Extra
creation_time bigint(20) unsigned NO NULL
mod_time bigint(20) unsigned NO 0
deleted tinyint(4) NO 0
is_def tinyint(4) NO 0
id_assoc int(10) unsigned NO PRI NULL auto_increment
user tinytext NO MUL NULL
acct tinytext NO MUL NULL
partition tinytext NO NULL
parent_acct tinytext NO NULL
lft int(11) NO MUL NULL
rgt int(11) NO NULL
shares int(11) NO 1
max_jobs int(11) YES NULL
max_jobs_accrue int(11) YES NULL
min_prio_thresh int(11) YES NULL
max_submit_jobs int(11) YES NULL
max_tres_pj text NO NULL
max_tres_pn text NO NULL
max_tres_mins_pj text NO NULL
max_tres_run_mins text NO NULL
max_wall_pj int(11) YES NULL
grp_jobs int(11) YES NULL
grp_jobs_accrue int(11) YES NULL
grp_submit_jobs int(11) YES NULL
grp_tres text NO NULL
grp_tres_mins text NO NULL
grp_tres_run_mins text NO NULL
grp_wall int(11) YES NULL
priority int(10) unsigned YES NULL
def_qos_id int(11) YES NULL
qos blob NO NULL
delta_qos blob NO NULL

<cluster_name>_wckey_table

table structure
Field Type Null Key Default Extra
creation_time bigint(20) unsigned NO NULL
mod_time bigint(20) unsigned NO 0
deleted tinyint(4) NO 0
is_def tinyint(4) NO 0
id_wckey int(10) unsigned NO PRI NULL auto_increment
wckey_name tinytext NO MUL NULL
user tinytext NO NULL

<cluster_name>_job_table

  • one entry for every job or job step on the cluster
  • all the things that you get from an sacct command is in here (see sacct --helpformat)
table structure
Field Type Null Key Default Extra
job_db_inx bigint(20) unsigned NO PRI NULL auto_increment
mod_time bigint(20) unsigned NO 0
deleted tinyint(4) NO 0
account tinytext YES NULL
admin_comment text YES NULL
array_task_str text YES NULL
array_max_tasks int(10) unsigned NO 0
array_task_pending int(10) unsigned NO 0
constraints text YES NULL
cpus_req int(10) unsigned NO NULL
derived_ec int(10) unsigned NO 0
derived_es text YES NULL
exit_code int(10) unsigned NO 0
flags int(10) unsigned NO 0
job_name tinytext NO NULL
id_assoc int(10) unsigned NO MUL NULL
id_array_job int(10) unsigned NO MUL 0
id_array_task int(10) unsigned NO 4294967294
id_block tinytext YES NULL
id_job int(10) unsigned NO MUL NULL
id_qos int(10) unsigned NO MUL 0
id_resv int(10) unsigned NO MUL NULL
id_wckey int(10) unsigned NO MUL NULL
id_user int(10) unsigned NO MUL NULL
id_group int(10) unsigned NO NULL
pack_job_id int(10) unsigned NO MUL NULL
pack_job_offset int(10) unsigned NO NULL
kill_requid int(11) NO -1
state_reason_prev int(10) unsigned NO NULL
mcs_label tinytext YES NULL
mem_req bigint(20) unsigned NO 0
nodelist text YES NULL
nodes_alloc int(10) unsigned NO MUL NULL
node_inx text YES NULL
partition tinytext NO NULL
priority int(10) unsigned NO NULL
state int(10) unsigned NO NULL
timelimit int(10) unsigned NO 0
time_submit bigint(20) unsigned NO 0
time_eligible bigint(20) unsigned NO MUL 0
time_start bigint(20) unsigned NO 0
time_end bigint(20) unsigned NO MUL 0
time_suspended bigint(20) unsigned NO 0
gres_req text NO NULL
gres_alloc text NO NULL
gres_used text NO NULL
wckey tinytext NO NULL
work_dir text NO NULL
system_comment text YES NULL
track_steps tinyint(4) NO NULL
tres_alloc text NO NULL
tres_req text NO NULL
<cluster_name>_(assoc|wckey)_usage_(hour|day|month)_table
  • these contain the rolled up accounting data that sreport actually uses to generate reports quickly
  • contains the usage for each association (bank) id or wckey id (from <clustername_(assoc|wckey)_table) in a time interval (hour, day, or month, respectively)
  • separates out usages for different TRES (trackable resources, so that, for example, cpu usage can be tracked separately from gpu usage if desired. We don’t really worry about this because, so far, everything we care about is node scheduled)
table structure
Field Type Null Key Default Extra
creation_time bigint(20) unsigned NO NULL
mod_time bigint(20) unsigned NO 0
deleted tinyint(4) NO 0
id int(10) unsigned NO PRI NULL
id_tres int(11) NO PRI 1
time_start bigint(20) unsigned NO PRI NULL
alloc_secs bigint(20) unsigned NO 0