[ https://issues.apache.org/jira/browse/IGNITE-19384?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Mikhail Pochatkin updated IGNITE-19384: --------------------------------------- Description: Currently deployment units stored in metastorage like one entity per unit with key structure *deploy-unit.units.\{id}:\{version}* and value *\{id}:\{value}:\{status}:\{fileNames}:\{nodeConsistentIds}* where each part encoded to Base64. Need to rework it. The following steps must be performed during the uploading process: # Choose a majority which contains available nodes including a leader. # Create meta storage record for given deployment unit clusterDUStatus == UPLOADING. # Initiate uploading of files to the target nodes and create meta storage record for given deployment unit and node nodeDUStatus == UPLOADING. # As soon as the deployment unit is uploaded to the node, nodeDUStatus must be changed to DEPLOYED value. # As soon as the deployment unit is uploaded to the target nodes, clusterDUStatus must be changed to DEPLOYED value. A deployment unit is considered deployed to the cluster only if clusterDUStatus == DEPLOYED. It means that there is at least one available node which can be a source for downloading the deployment unit on demand. was: Currently deployment units stored in metastorage like one entity per unit with key structure *deploy-unit.units.\{id}:\{version}* and value *{id}:\{value}:\{status}:\{fileNames}:\{nodeConsistentIds}* where each part encoded to Base64. Need to rework it. The following steps must be performed during the uploading process: # Choose a majority which contains available nodes including a leader. # Create meta storage record for given deployment unit clusterDUStatus == UPLOADING. # Initiate uploading of files to the target nodes and create meta storage record for given deployment unit and node nodeDUStatus == UPLOADING. # As soon as the deployment unit is uploaded to the node, nodeDUStatus must be changed to DEPLOYED value. # As soon as the deployment unit is uploaded to the target nodes, clusterDUStatus must be changed to DEPLOYED value. A deployment unit is considered deployed to the cluster only if clusterDUStatus == DEPLOYED. It means that there is at least one available node which can be a source for downloading the deployment unit on demand. > Rework units metastorage layer > ------------------------------ > > Key: IGNITE-19384 > URL: https://issues.apache.org/jira/browse/IGNITE-19384 > Project: Ignite > Issue Type: Improvement > Reporter: Mikhail Pochatkin > Priority: Major > Labels: ignite-3 > > Currently deployment units stored in metastorage like one entity per unit > with key structure > *deploy-unit.units.\{id}:\{version}* and value > *\{id}:\{value}:\{status}:\{fileNames}:\{nodeConsistentIds}* where each part > encoded to Base64. > Need to rework it. The following steps must be performed during the uploading > process: > # Choose a majority which contains available nodes including a leader. > # Create meta storage record for given deployment unit clusterDUStatus == > UPLOADING. > # Initiate uploading of files to the target nodes and create meta storage > record for given deployment unit and node nodeDUStatus == UPLOADING. > # As soon as the deployment unit is uploaded to the node, nodeDUStatus must > be changed to DEPLOYED value. > # As soon as the deployment unit is uploaded to the target nodes, > clusterDUStatus must be changed to DEPLOYED value. > > A deployment unit is considered deployed to the cluster only if > clusterDUStatus == DEPLOYED. It means that there is at least one available > node which can be a source for downloading the deployment unit on demand. -- This message was sent by Atlassian Jira (v8.20.10#820010)