Skip to content

Commit afa11c2

Browse files
Corrected c/p error
1 parent a50c713 commit afa11c2

File tree

1 file changed

+0
-215
lines changed

1 file changed

+0
-215
lines changed

schema/oracle/ATLAS_PANDA.sql

Lines changed: 0 additions & 215 deletions
Original file line numberDiff line numberDiff line change
@@ -6350,221 +6350,6 @@ end;
63506350
--------------------------------------------------------
63516351
set define off;
63526352

6353-
6354-
6355-
PanDAWMS
6356-
6357-
panda-server
6358-
6359-
Code
6360-
Issues 1
6361-
Pull requests
6362-
Actions
6363-
Projects
6364-
Wiki
6365-
Security
6366-
Insights
6367-
6368-
Settings
6369-
6370-
DB upgrade scripts
6371-
Edward Karavakis edited this page Mar 24, 2025 · 59 revisions
6372-
24 February 2025 (DB version 0.0.25): add worker node map and cpu benchmarks
6373-
6374-
CREATE TABLE "ATLAS_PANDA"."WORKER_NODE"(
6375-
"SITE" varchar2(128),
6376-
"HOST_NAME" varchar2(128),
6377-
"CPU_MODEL" varchar(128),
6378-
"N_LOGICAL_CPUS" number(9,0),
6379-
"N_SOCKETS" number(9,0),
6380-
"CORES_PER_SOCKET" number(9,0),
6381-
"THREADS_PER_CORE" number(9,0),
6382-
"CPU_ARCHITECTURE" varchar2(20),
6383-
"CPU_ARCHITECTURE_LEVEL" varchar2(20),
6384-
"CLOCK_SPEED" number(9,2),
6385-
"TOTAL_MEMORY" number(9,0),
6386-
"LAST_SEEN" date,
6387-
CONSTRAINT PK_WORKER_NODE PRIMARY KEY ("SITE", "HOST_NAME", "CPU_MODEL")
6388-
)ORGANIZATION INDEX COMPRESS 1;
6389-
6390-
CREATE INDEX IDX_WORKER_NODE_LAST_SEEN ON "ATLAS_PANDA"."WORKER_NODE"("LAST_SEEN");
6391-
6392-
-- Table Comment
6393-
COMMENT ON TABLE "ATLAS_PANDA"."WORKER_NODE" IS 'Stores information about worker nodes seen by PanDA pilots';
6394-
6395-
-- Column Comments
6396-
COMMENT ON COLUMN "ATLAS_PANDA"."WORKER_NODE"."SITE" IS 'The name of the site (not PanDA queue) where the worker node is located.';
6397-
COMMENT ON COLUMN "ATLAS_PANDA"."WORKER_NODE"."HOST_NAME" IS 'The hostname of the worker node.';
6398-
COMMENT ON COLUMN "ATLAS_PANDA"."WORKER_NODE"."CPU_MODEL" IS 'The specific model of the CPU.';
6399-
COMMENT ON COLUMN "ATLAS_PANDA"."WORKER_NODE"."N_LOGICAL_CPUS" IS 'Total number of logical CPUs (calculated as sockets * cores per socket * threads per core).';
6400-
COMMENT ON COLUMN "ATLAS_PANDA"."WORKER_NODE"."N_SOCKETS" IS 'Number of physical CPU sockets.';
6401-
COMMENT ON COLUMN "ATLAS_PANDA"."WORKER_NODE"."CORES_PER_SOCKET" IS 'Number of CPU cores per physical socket.';
6402-
COMMENT ON COLUMN "ATLAS_PANDA"."WORKER_NODE"."THREADS_PER_CORE" IS 'Number of threads per CPU core.';
6403-
COMMENT ON COLUMN "ATLAS_PANDA"."WORKER_NODE"."CPU_ARCHITECTURE" IS 'The CPU architecture (e.g., x86_64, ARM).';
6404-
COMMENT ON COLUMN "ATLAS_PANDA"."WORKER_NODE"."CPU_ARCHITECTURE_LEVEL" IS 'The specific level/version of the CPU architecture.';
6405-
COMMENT ON COLUMN "ATLAS_PANDA"."WORKER_NODE"."CLOCK_SPEED" IS 'Clock speed of the CPU in GHz.';
6406-
COMMENT ON COLUMN "ATLAS_PANDA"."WORKER_NODE"."TOTAL_MEMORY" IS 'Total amount of RAM in MB.';
6407-
COMMENT ON COLUMN "ATLAS_PANDA"."WORKER_NODE"."LAST_SEEN" IS 'Timestamp of the last time the worker node was active.';
6408-
6409-
CREATE TABLE "ATLAS_PANDA"."CPU_BENCHMARKS" (
6410-
"CPU_TYPE" VARCHAR2(128),
6411-
"SMT_ENABLED" NUMBER(1), -- 0 or 1
6412-
"SOCKETS" NUMBER(2),
6413-
"CORES_PER_SOCKET" NUMBER(9),
6414-
"NCORES" NUMBER(9),
6415-
"SITE" VARCHAR2(128),
6416-
"SCORE_PER_CORE" NUMBER(10,2),
6417-
"TIMESTAMP" DATE,
6418-
"SOURCE" VARCHAR2(256)
6419-
);
6420-
6421-
CREATE TABLE "ATLAS_PANDA"."WORKER_NODE_MAP"(
6422-
"ATLAS_SITE" varchar2(128),
6423-
"WORKER_NODE" varchar2(128),
6424-
"CPU_TYPE" varchar(128),
6425-
"LAST_SEEN" date,
6426-
"CORES" number(9,0),
6427-
"ARCHITECTURE_LEVEL" varchar2(20),
6428-
CONSTRAINT PK_WORKER_NODE_MAP PRIMARY KEY ("ATLAS_SITE", "WORKER_NODE")
6429-
);
6430-
6431-
6432-
create or replace PROCEDURE UPDATE_WORKER_NODE_MAP
6433-
AS
6434-
BEGIN
6435-
6436-
-- 2025 02 24, ver 1.0
6437-
-- to easy identify the session and better view on resource usage by setting a dedicated module for the PanDA jobs
6438-
DBMS_APPLICATION_INFO.SET_MODULE( module_name => 'PanDA scheduler job', action_name => 'Updates worker node map with last days job data');
6439-
DBMS_APPLICATION_INFO.SET_CLIENT_INFO ( client_info => sys_context('userenv', 'host') || ' ( ' || sys_context('userenv', 'ip_address') || ' )' );
6440-
6441-
MERGE INTO ATLAS_PANDA.WORKER_NODE_MAP WNM
6442-
USING (
6443-
WITH sc_slimmed AS (
6444-
SELECT
6445-
panda_queue,
6446-
scj.data.atlas_site AS atlas_site
6447-
FROM
6448-
atlas_panda.schedconfig_json scj
6449-
)
6450-
SELECT
6451-
DISTINCT
6452-
sc_slimmed.atlas_site,
6453-
CASE
6454-
WHEN INSTR(jobsarchived4.modificationhost, '@') > 0
6455-
THEN REGEXP_SUBSTR(jobsarchived4.modificationhost, '@(.+)', 1, 1, NULL, 1)
6456-
ELSE jobsarchived4.modificationhost
6457-
END AS WORKERNODE,
6458-
REGEXP_SUBSTR(
6459-
cpuconsumptionunit,
6460-
's?\+?(.+?)\s\d+-Core',
6461-
1, 1, NULL, 1
6462-
) AS CPU_TYPE,
6463-
MAX(
6464-
CASE
6465-
WHEN cpuconsumptionunit IS NULL OR TRIM(cpuconsumptionunit) = ''
6466-
THEN 0
6467-
WHEN cpuconsumptionunit NOT LIKE '%-Core%'
6468-
THEN 0
6469-
ELSE
6470-
TO_NUMBER(NVL(REGEXP_SUBSTR(cpuconsumptionunit, '(\d+)-Core', 1, 1, NULL, 1), -1))
6471-
END
6472-
) AS NUM_CORE,
6473-
CPU_ARCHITECTURE_LEVEL
6474-
FROM
6475-
atlas_panda.jobsarchived4
6476-
JOIN
6477-
sc_slimmed
6478-
ON jobsarchived4.computingsite = sc_slimmed.panda_queue
6479-
WHERE
6480-
endtime > sysdate - interval '1' day
6481-
AND jobstatus IN ('finished', 'failed')
6482-
AND modificationhost NOT LIKE 'aipanda%'
6483-
AND CPU_ARCHITECTURE_LEVEL IS NOT NULL
6484-
AND REGEXP_SUBSTR(
6485-
cpuconsumptionunit,
6486-
's?\+?(.+?)\s\d+-Core',
6487-
1, 1, NULL, 1
6488-
) IS NOT NULL
6489-
GROUP BY
6490-
sc_slimmed.atlas_site,
6491-
CASE
6492-
WHEN INSTR(jobsarchived4.modificationhost, '@') > 0
6493-
THEN REGEXP_SUBSTR(jobsarchived4.modificationhost, '@(.+)', 1, 1, NULL, 1)
6494-
ELSE jobsarchived4.modificationhost
6495-
END,
6496-
REGEXP_SUBSTR(
6497-
cpuconsumptionunit,
6498-
's?\+?(.+?)\s\d+-Core',
6499-
1, 1, NULL, 1
6500-
),
6501-
CPU_ARCHITECTURE_LEVEL
6502-
) source
6503-
ON (
6504-
source.ATLAS_SITE = WNM.ATLAS_SITE
6505-
AND source.WORKERNODE = WNM.WORKER_NODE
6506-
AND source.CPU_TYPE = WNM.CPU_TYPE
6507-
)
6508-
WHEN MATCHED THEN
6509-
UPDATE SET
6510-
WNM.LAST_SEEN = SYSDATE
6511-
WHEN NOT MATCHED THEN
6512-
INSERT (
6513-
ATLAS_SITE, WORKER_NODE, CPU_TYPE, CORES, ARCHITECTURE_LEVEL, LAST_SEEN
6514-
)
6515-
VALUES (
6516-
source.ATLAS_SITE, source.WORKERNODE, source.CPU_TYPE, source.NUM_CORE,
6517-
source.CPU_ARCHITECTURE_LEVEL, SYSDATE
6518-
);
6519-
6520-
COMMIT;
6521-
6522-
DBMS_APPLICATION_INFO.SET_MODULE( module_name => null, action_name => null);
6523-
DBMS_APPLICATION_INFO.SET_CLIENT_INFO ( client_info => null);
6524-
6525-
end;
6526-
6527-
6528-
BEGIN
6529-
dbms_scheduler.create_job(
6530-
job_name => 'UPDATE_WORKER_NODE_MAP_JOB',
6531-
job_type => 'PLSQL_BLOCK',
6532-
job_action => 'BEGIN ATLAS_PANDA.UPDATE_WORKER_NODE_MAP; END;',
6533-
start_date => SYSTIMESTAMP,
6534-
repeat_interval => 'FREQ=DAILY; BYHOUR=8; BYMINUTE=0; BYSECOND=0;',
6535-
auto_drop => FALSE,
6536-
enabled => TRUE,
6537-
comments => 'Runs every day at 8 AM to refresh WORKER_NODE_MAP data.'
6538-
);
6539-
END;
6540-
/
6541-
6542-
CREATE TABLE "ATLAS_PANDA"."WORKER_NODE_METRICS"(
6543-
"SITE" varchar2(128),
6544-
"HOST_NAME" varchar2(128),
6545-
"TIMESTAMP" TIMESTAMP DEFAULT SYSTIMESTAMP AT TIME ZONE 'UTC',
6546-
"KEY" varchar2(20),
6547-
"STATISTICS" varchar2(500),
6548-
CONSTRAINT wn_metrics_json CHECK ("STATISTICS" IS JSON) ENABLE
6549-
)
6550-
PARTITION BY RANGE ("TIMESTAMP")
6551-
INTERVAL (NUMTOYMINTERVAL(1, 'MONTH')) (
6552-
PARTITION "WN_METRICS_BASE" VALUES LESS THAN (TO_DATE('2025-03-01', 'YYYY-MM-DD'))
6553-
);
6554-
6555-
CREATE INDEX mn_metrics_idx ON "ATLAS_PANDA"."WORKER_NODE_METRICS"("SITE", "HOST_NAME", "TIMESTAMP");
6556-
6557-
-- Table Comment
6558-
COMMENT ON TABLE "ATLAS_PANDA"."WORKER_NODE_METRICS" IS 'Metrics related to a worker node';
6559-
6560-
-- Column Comments
6561-
COMMENT ON COLUMN "ATLAS_PANDA"."WORKER_NODE_METRICS"."SITE" IS 'The name of the site (not PanDA queue) where the worker node is located.';
6562-
COMMENT ON COLUMN "ATLAS_PANDA"."WORKER_NODE_METRICS"."HOST_NAME" IS 'The hostname of the worker node.';
6563-
COMMENT ON COLUMN "ATLAS_PANDA"."WORKER_NODE_METRICS"."TIMESTAMP" IS 'Timestamp the metrics were collected.';
6564-
COMMENT ON COLUMN "ATLAS_PANDA"."WORKER_NODE_METRICS"."KEY" IS 'Key of the metrics entry.';
6565-
COMMENT ON COLUMN "ATLAS_PANDA"."WORKER_NODE_METRICS"."STATISTICS" IS 'Metrics in json format.';
6566-
6567-
65686353
create or replace PROCEDURE UPDATE_WORKER_NODE_METRICS
65696354
AS
65706355
BEGIN

0 commit comments

Comments
 (0)