Skip to content

Commit 5a41458

Browse files
committed
Performance Cluster Management
Added basic models and updated sql scripts. Working on #11
1 parent 18af916 commit 5a41458

File tree

3 files changed

+119
-0
lines changed

3 files changed

+119
-0
lines changed

dbscripts/mysql_process_tracker.sql

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -272,3 +272,31 @@ create index process_run_actor_id
272272
create index process_status_id
273273
on process_tracking (process_status_id);
274274

275+
create table process_tracker.cluster_tracking
276+
(
277+
cluster_id int auto_increment
278+
primary key,
279+
cluster_name varchar(250) not null,
280+
cluster_max_memory int not null,
281+
cluster_max_memory_unit char(2) null,
282+
cluster_max_processing int not null,
283+
cluster_max_processing_unit varchar(3) not null,
284+
cluster_current_memory_usage int null,
285+
cluster_current_process_usage int null,
286+
constraint cluster_tracking_cluster_name_uindex
287+
unique (cluster_name)
288+
)
289+
comment 'Capacity cluster tracking';
290+
291+
create table process_tracker.cluster_process
292+
(
293+
cluster_id int not null,
294+
process_id int not null,
295+
primary key (cluster_id, process_id),
296+
constraint cluster_process_fk01
297+
foreign key (cluster_id) references process_tracker.cluster_tracking (cluster_id),
298+
constraint cluster_process_fk02
299+
foreign key (process_id) references process_tracker.process (process_id)
300+
)
301+
comment 'Relationship tracking between processes and performance clusters.';
302+

dbscripts/postgresql_process_tracker.sql

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -417,3 +417,40 @@ comment on table extract_dependency is 'Table tracking interdependencies between
417417

418418
alter table extract_dependency owner to pt_admin;
419419

420+
create table cluster_tracking
421+
(
422+
cluster_id serial not null
423+
constraint cluster_tracking_pk
424+
primary key,
425+
cluster_name varchar(250) not null,
426+
cluster_max_memory integer not null,
427+
cluster_max_memory_unit char(2) not null,
428+
cluster_max_processing integer not null,
429+
cluster_max_processing_unit varchar(3) not null,
430+
cluster_current_memory_usage integer,
431+
cluster_current_process_usage integer
432+
);
433+
434+
comment on table cluster_tracking is 'Capacity cluster tracking';
435+
436+
alter table cluster_tracking owner to pt_admin;
437+
438+
create unique index cluster_tracking_cluster_name_uindex
439+
on cluster_tracking (cluster_name);
440+
441+
create table cluster_process
442+
(
443+
cluster_id integer not null
444+
constraint cluster_process_fk01
445+
references cluster_tracking,
446+
process_id integer not null
447+
constraint cluster_process_fk02
448+
references process,
449+
constraint cluster_process_pk
450+
primary key (cluster_id, process_id)
451+
);
452+
453+
comment on table cluster_process is 'Relationship tracking between processes and performance clusters.';
454+
455+
alter table cluster_process owner to pt_admin;
456+

process_tracker/models/capacity.py

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
# SQLAlchemy Models
2+
# Models for Process entities
3+
4+
5+
from sqlalchemy import Boolean, Column, DateTime, ForeignKey, Integer, Sequence, String
6+
from sqlalchemy.orm import relationship
7+
8+
from process_tracker.models.model_base import default_date, Base
9+
10+
11+
class Cluster(Base):
12+
13+
__tablename__ = "cluster_tracking"
14+
__table_args__ = {"schema": "process_tracker"}
15+
16+
cluster_id = Column(
17+
Integer,
18+
Sequence("cluster_tracking_cluster_id_seq", schema="process_tracker"),
19+
primary_key=True,
20+
)
21+
cluster_name = Column(String(250), unique=True, nullable=False)
22+
cluster_max_memory = Column(Integer, nullable=False)
23+
cluster_max_memory_unit = Column(String(2), nullable=False)
24+
cluster_max_processing = Column(Integer, nullable=False)
25+
cluster_max_processing_unit = Column(String(3), nullable=False)
26+
cluster_current_memory_usage = Column(Integer)
27+
cluster_current_process_usage = Column(Integer)
28+
29+
def __repr__(self):
30+
31+
return "<Cluster (name=%s)>" % self.cluster_name
32+
33+
34+
class ClusterProcess(Base):
35+
36+
__tablename__ = "cluster_process"
37+
__table_args__ = {"schema": "process_tracker"}
38+
39+
cluster_id = Column(
40+
Integer,
41+
ForeignKey("process_tracker.cluster_tracking.cluster_id"),
42+
primary_key=True,
43+
)
44+
process_id = Column(Integer, ForeignKey("process_tracker.process.process_id"))
45+
46+
cluster_processes = relationship("Process", foreign_key=[process_id])
47+
process_clusters = relationship("Cluster", foreign_key=[cluster_id])
48+
49+
def __repr__(self):
50+
51+
return (
52+
"<ClusterProcess (cluster_id=%s, process_id=%s)" % self.cluster_id,
53+
self.process_id,
54+
)

0 commit comments

Comments
 (0)