Scheduler Backend Evolution#
Starting point:
stateDiagram-v2
direction LR
classDef whitesystem fill:white
classDef needsreview fill:#ff8c1a
classDef allok fill:#66b3ff
classDef almostimplemented fill:yellow
Scheduler<br>(cta/scheduler):::allok --> SchedulerDatabase<br>(cta/scheduler):::allok
OStoreDB<br>(cta/scheduler/OStoreDB):::needsreview --> objectstore<br>(cta/objectstore):::needsreview
SchedulerDatabase<br>(cta/scheduler) --> OStoreDB<br>(cta/scheduler/OStoreDB)
- ensuring compatibility with Scheduler:
- copy of OStoreDB methods put in
cta/scheduler/rdbms
making them throw exceptions - useful strategy to learn/review all the bits from the very start (i.e. neither
taped
notctafrontend
start up) - to start running the system, step by step approach: crash → implement → test
Midterm goal (end of 2025): - functional PostgresSched backend (Archive/Retrieve and Repack workflows)
stateDiagram-v2
direction LR
classDef whitesystem fill:white
classDef needsreview fill:#ff8c1a
classDef allok fill:#66b3ff
classDef almostimplemented fill:yellow
Scheduler<br>(cta/scheduler):::allok --> SchedulerDatabase<br>(cta/scheduler):::allok
rdbms<br>(cta/scheduler/rdbms):::allok --> rdbms<br>(cta/rdbms):::allok
SchedulerDatabase<br>(cta/scheduler) --> rdbms<br>(cta/scheduler/rdbms):::allok
Our longterm target:
- re-think and re-implement part of the Scheduler
and SchedulerDatabase
(+ refactor the cta/scheduler/rdbms
code) to exploit the advantages of relational DB (PostgreSQL) and remove biases in scheduling introduced by objectstore
stateDiagram-v2
direction LR
classDef allok fill:#5cd65c
Scheduler<br>(cta/scheduler):::allok --> SchedulerDatabase<br>(cta/scheduler):::allok
rdbms<br>(cta/scheduler/rdbms):::allok --> rbms<br>(cta/rdbms):::allok
SchedulerDatabase<br>(cta/scheduler) --> rdbms<br>(cta/scheduler/rdbms):::allok
Current development:
- Archive and Retrieve workflows are functional
- WIP: Repack workflows
- WIP: Scaling infrastructure deployment for tests
- no changes/improvements to the Scheduler
or SchedulerDatabase
unless necessary (creating tickets with these for the future)