Mikhail Pochatkin created IGNITE-19476:
------------------------------------------

             Summary: Implement unit deploy on demand API
                 Key: IGNITE-19476
                 URL: https://issues.apache.org/jira/browse/IGNITE-19476
             Project: Ignite
          Issue Type: New Feature
            Reporter: Mikhail Pochatkin


If code execution is initiated on some node (due to a Compute API invocation) 
and this target node doesn’t have a required deployment unit it could be 
requested from some node which already has the required deployment unit. It 
means that the required deployment unit has clusterDURecord.status == DEPLOYED 
and there is at least one node where nodeDURecord.status == DEPLOYED. If this 
conditions are met the following steps must be performed:

 
 # Add meta storage record for target node and deployment unit where 
nodeDURecord.status == UPLOADING and nodeDURecord.depOpId == 
clusterDUStatus.depOpId. The node should prevent concurrent races between 
different threads. It’s achievable without any meta storage operations because 
there is no other node which can initiate the on-demand deployment process..

Note that if clusterDURecord.status == DEPLOYED && nodeDURecord.status == 
UPLOADING => deployment on-demand is in progress for a given deployment unit 
and given node.

As soon as the deployment unit is uploaded to the target node, 
nodeDURecord.status must be changed to DEPLOYED value.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to