Refactor Task
system to retain ProtocolDAG
, upload ProtocolUnitResult
s and ResultFile
s as they complete
#180
Labels
Milestone
Currently, when a compute service executes a
Task
, it generates a newProtocolDAG
locally, executes it, and pushes the (successful or failed)ProtocolDAGResult
back to the server. This adds the serializedProtocolDAGResult
to the object store, and aProtocolDAGResultRef
to the state store. ATask
can have any number of failedProtocolDAGResultRef
s, and (typically) a single successfulProtocolDAGResultRef
.This approach does not currently support
ResultFile
upload (files produced byProtocolUnit
s that are desired for permanent storage, available on-demand to users later), nor does it allow for aProtocolDAG
that successfully executes someProtocolUnit
s to be started again from where it left off on another compute service (checkpointing). Our aim is to support both of these inalchemiscale
.This proposal should accomplish both:
ProtocolDAGResult
, we should store them byTask
/ProtocolDAG
ProtocolDAGRef
in state store upon creation, serializedProtocolDAG
in object storeProtocolDAG
is executed on compute service,ProtocolUnitResult
s andResultFile
s shipped to object storeProtocolDAGResult
shipped to object store,ProtocolDAGResultRef
added to state store; same retrieval pattern as beforeProtocolDAGResult
Task
, it checks for existence of aProtocolDAGRef
; if present, pullsProtocolDAG
and its associatedProtocolUnitResult
s from object storeProtocolUnit
s in theProtocolDAG
that have not successfully been executed (either failed or not run at all), identifies their dependencyProtocolUnitResult
s, grabs theirResultFile
s if included in outputs, and proceeds with DAG executionThis has some nice properties:
Task
has a singleProtocolDAGRef
ever, and this may have any number of failedProtocolDAGResultRef
s and only one successfulProtocolDAGResultRef
gufe
storage system forResultFile
s (see gufe#186 and gufe#234 for current state as of this writing)ProtocolDAG
s, reducing waste and time to resultsTask
claiming, result retrieval, etc.ResultFile
retrieval user-sideextends
support compute side, where one or moreResultFile
s may be needed to extend aProtocolDAG
from a previousProtocolDAGResult
The text was updated successfully, but these errors were encountered: