core: fetch / cache timetable data on core side (like how we handle infra loading) #11019
Labels
area:core
Work on Core Service
area:editoast
Work on Editoast Service
kind:enhancement
Improvement of existing features
kind:performance
Reduction of computing time or memory use
kind:refacto-task
Task related to Refactorization Epic
module:stdcm
Short-Term DCM
Who would benefit from this feature?
Both
What is this feature about?
It's a possible refactoring I have mentioned several times IRL, but I hadn't created an issue yet (or I lost track of it). This is a suggestion to discuss, not something we know we want to do.
For an STDCM request on a real-life timetable, we spend a lot of time building, sending, and parsing the request (tens of seconds). The reason for that is the "train requirements", a massive list of all the resources used by the train in the timetable. In this trace, we spent 52s (!) just parsing the request.
We could handle it like we handle infras. Core only loads it when required and then cache the values. The main STDCM request would only contain the actual inputs (origin/destination and times).
There would be some refactoring to do, like how we keep track of timetable changes, or how we may only load a subset of the timetable.
Why is this feature valuable?
The text was updated successfully, but these errors were encountered: