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/PostgresSchedDBmaking them throw exceptions
- copy of OStoreDB methods put in
- useful strategy to learn/review all the bits from the very start (i.e. neither
tapednotctafrontendstart 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
SchedulerandSchedulerDatabase(+ refactor thePostgredsSchedDBcode) 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
SchedulerorSchedulerDatabaseunless necessary (creating tickets with these for the future)
Edited by Jaroslav Guenther