Status Report on Archive and Retrieve workflow implementations with Relational DB scheduler
This ticket is describing the strategy and status of the progress in implementing the Postgres DB backend for CTA.
Starting point:
stateDiagram-v2
direction LR
classDef whitesystem fill:white
classDef needsreview fill:#ff8c1a
classDef allok fill:#66b3ff
classDef almostimplemented fill:yellow
Scheduler\n(cta/scheduler):::allok --> SchedulerDatabase\n(cta/scheduler):::allok
OStoreDB\n(cta/scheduler/OStoreDB):::needsreview --> objectstore\n(cta/objectstore):::needsreview
SchedulerDatabase\n(cta/scheduler) --> OStoreDB\n(cta/scheduler/OStoreDB)
- ensuring compatibility with Scheduler:
- copy of OStoreDB methods put in
cta/scheduler/PostgresSchedDB
making them throw exceptions
- copy of OStoreDB methods put in
- 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 2024):
- functional PostgresSched backend
stateDiagram-v2
direction LR
classDef whitesystem fill:white
classDef needsreview fill:#ff8c1a
classDef allok fill:#66b3ff
classDef almostimplemented fill:yellow
Scheduler\n(cta/scheduler):::allok --> SchedulerDatabase\n(cta/scheduler):::allok
PostgresSchedDB\n(cta/scheduler/PostgresSchedDB):::allok --> rbms\n(cta/rdbms):::allok
SchedulerDatabase\n(cta/scheduler) --> PostgresSchedDB\n(cta/scheduler/PostgresSchedDB):::allok
Our longterm target:
- re-think and re-implement part of the
Scheduler
andSchedulerDatabase
(+ refactor thePostgredsSchedDB
code) to exploit the advantages of Postgres DB and remove biases in scheduling introduced byobjectstore
stateDiagram-v2
direction LR
classDef allok fill:#5cd65c
Scheduler\n(cta/scheduler):::allok --> SchedulerDatabase\n(cta/scheduler):::allok
PostgresSchedDB\n(cta/scheduler/PostgresSchedDB):::allok --> rbms\n(cta/rdbms):::allok
SchedulerDatabase\n(cta/scheduler) --> PostgresSchedDB\n(cta/scheduler/PostgresSchedDB):::allok
Current development:
- complies with the skeleton hook
- no changes/improvements to the
Scheduler
orSchedulerDatabase
unless necessary (creating tickets with these for the future)
Edited by Jaroslav Guenther