public JobParameterByteStore createOrGetJobParameterByteStore(JobId jobId) { return jobParameterByteStoreMap.computeIfAbsent(jobId, jid -> new JobParameterByteStore()); }
@Override public void updateListenerJobParameters(JobParameterByteStore jobParameterByteStore) { String AsterixTransactionIdString = new String(jobParameterByteStore .getParameterValue(TRANSACTION_ID_PARAMETER_NAME, 0, TRANSACTION_ID_PARAMETER_NAME.length)); if (AsterixTransactionIdString.length() > 0) { this.txnId = new TxnId(Integer.parseInt(AsterixTransactionIdString)); } }
public JobRun(ClusterControllerService ccs, DeploymentId deploymentId, JobId jobId, Set<JobFlag> jobFlags, DeployedJobSpecDescriptor deployedJobSpecDescriptor, Map<byte[], byte[]> jobParameters, DeployedJobSpecId deployedJobSpecId) throws HyracksException { this(deploymentId, jobId, jobFlags, deployedJobSpecDescriptor.getJobSpecification(), deployedJobSpecDescriptor.getActivityClusterGraph()); ccs.createOrGetJobParameterByteStore(jobId).setParameters(jobParameters); Set<Constraint> constaints = deployedJobSpecDescriptor.getActivityClusterGraphConstraints(); this.scheduler = new JobExecutor(ccs, this, constaints, deployedJobSpecId); }
private void startTasks(Map<String, List<TaskAttemptDescriptor>> taskAttemptMap) throws HyracksException { final DeploymentId deploymentId = jobRun.getDeploymentId(); final JobId jobId = jobRun.getJobId(); final ActivityClusterGraph acg = jobRun.getActivityClusterGraph(); final Map<ConnectorDescriptorId, IConnectorPolicy> connectorPolicies = new HashMap<>(jobRun.getConnectorPolicyMap()); INodeManager nodeManager = ccs.getNodeManager(); try { byte[] acgBytes = isDeployed() ? null : JavaSerializationUtils.serialize(acg); for (Map.Entry<String, List<TaskAttemptDescriptor>> entry : taskAttemptMap.entrySet()) { String nodeId = entry.getKey(); final List<TaskAttemptDescriptor> taskDescriptors = entry.getValue(); final NodeControllerState node = nodeManager.getNodeControllerState(nodeId); if (node != null) { node.getActiveJobIds().add(jobRun.getJobId()); boolean changed = jobRun.getParticipatingNodeIds().add(nodeId); if (LOGGER.isTraceEnabled()) { LOGGER.trace("Starting: " + taskDescriptors + " at " + entry.getKey()); } byte[] jagBytes = changed ? acgBytes : null; node.getNodeController().startTasks(deploymentId, jobId, jagBytes, taskDescriptors, connectorPolicies, jobRun.getFlags(), ccs.createOrGetJobParameterByteStore(jobId).getParameterMap(), deployedJobSpecId, jobRun.getStartTime()); } } } catch (Exception e) { throw HyracksException.create(e); } }
private Joblet getOrCreateLocalJoblet(DeploymentId deploymentId, INCServiceContext appCtx, byte[] acgBytes) throws HyracksException { Map<JobId, Joblet> jobletMap = ncs.getJobletMap(); Joblet ji = jobletMap.get(jobId); if (ji == null) { ActivityClusterGraph acg = (deployedJobSpecId != null) ? ncs.getActivityClusterGraph(deployedJobSpecId) : (ActivityClusterGraph) DeploymentUtils.deserialize(acgBytes, deploymentId, appCtx); ncs.createOrGetJobParameterByteStore(jobId).setParameters(jobParameters); IJobletEventListenerFactory listenerFactory = acg.getJobletEventListenerFactory(); if (listenerFactory != null) { if (deployedJobSpecId != null) { listenerFactory = acg.getJobletEventListenerFactory().copyFactory(); } listenerFactory.updateListenerJobParameters(ncs.createOrGetJobParameterByteStore(jobId)); } ji = new Joblet(ncs, deploymentId, jobId, appCtx, acg, listenerFactory, jobStartTime); jobletMap.put(jobId, ji); } return ji; }
@Override public byte[] getJobParameter(byte[] name, int start, int length) throws HyracksException { return ncs.createOrGetJobParameterByteStore(joblet.getJobId()).getParameterValue(name, start, length); }
public JobParameterByteStore createOrGetJobParameterByteStore(JobId jobId) throws HyracksException { JobParameterByteStore jpbs = jobParameterByteStoreMap.get(jobId); if (jpbs == null) { jpbs = new JobParameterByteStore(); jobParameterByteStoreMap.put(jobId, jpbs); } return jpbs; }