-
Notifications
You must be signed in to change notification settings - Fork 94
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
compute prerequisites for tasks outside n=0 #4036
Comments
Need to test current situation again. Can we interrogate the hidden pool task proxies (used for tracking prerequisites). Further ahead, we need compute the prerequisites (none of which will be satisfied). |
Easiest way to do this: temporarily instantiate the target task proxy and grab its cycle point-specific prerequisites. |
The datastore should have these anyway, if the node is in the window. DS to check. |
Need to check partially satisfied prerequisites. |
Currently, the scheduler and DB record partially satisfied prerequisites. (And fully satisfied n=0 tasks). Historical tasks can be assumed to have satisfied prerequisites, and future tasks unsatisfied. However, if the scheduler is down the UIS can't ask it to instantiate a transient task to get its prerequisites. And, future tasks are not in the DB. Maybe the scheduler could dump relevant task information to file so that the UIS can use that to compute prerequisites on the fly for any task in the graph, if the scheduler is down? |
Summary as of #4581: Historical task data in the n-window is now loaded from the DB, but that does not include prerequisite satisfaction status except for partially satisfied prerequisites, which are stored in the DB as needed for restarts - which we want to infer from task status rather than add to permanent DB bloat. So currently:
(From @dwsutherland: It loads it if present in the DB, so for partially satisfied prereqs at n=1 .. Or infact any future task shows the correct prerequisite satisfaction (along with past tasks that stayed in the window since being active)) |
#4581 is merged Bumping this Issue to rc2.
To close this Issue, we need to infer other prerequisites (fully satisfied or fully unsatisfied) from task status rather than add to permanent DB bloat. (Note 4581 originally closed this issue, by storing all prereqs in the DB, but we backed that out in favor of the above) |
@dwsutherland - if you haven't started on this, I'll have a crack at it myself (just taking a look at the code now...) |
We can close this by reporting no prerequisites (or at least not the satisfaction state of them) for past tasks. See #4849 (comment) |
(relabeling: reporting past task prerequisites as unsatisfied is a bug) Moved to rc3 as I thought I had a quick fix ... bug maybe not. |
UPDATE on the status of this issue: Currently the datastore:
However, it wrongly shows past tasks loaded from the DB as having unsatisfied prerequisites. To see this: [scheduler]
allow implicit tasks = True
[scheduling]
[[graph]]
R1 = "a => b => c => d => e"
[runtime]
[[c]]
script = "sleep 1000" Then do Finally, look at the prerequisites reported by As discussed in the last meeting, rather than create DB bloat by retaining prerequisite history for a very niche query (in a conditionally triggered past task, which prerequisites exactly were satisfied to make it trigger?) we will essentially say that past tasks do not have prerequisites - which I think is reasonable. |
I thought I had quick fix for this, but getting the datastore to ignore prerequisites of past tasks (status > "running") on loading from the DB. However, that was a bit too simple, as the prerequisites then stay ignored (in the datastore) even if the affected tasks are brought back to life by re-triggering. |
See #3938 (comment)
Tasks that are not active are listed as having no prerequisites. This is especially unhelpful as we are not especially interested in the prerequisites of an active task.
Suggest computing prerequisites for the entire scheduler window (n=1 by default).
The text was updated successfully, but these errors were encountered: