private boolean checkState(JobProcessInformation processInformation, int partitionId) { JobPartitionState[] partitionStates = processInformation.getPartitionStates(); JobPartitionState partitionState = partitionStates[partitionId]; return partitionState == null || partitionState.getState() == JobPartitionState.State.WAITING; }
private boolean checkState(JobProcessInformation processInformation, int partitionId) { JobPartitionState[] partitionStates = processInformation.getPartitionStates(); JobPartitionState partitionState = partitionStates[partitionId]; return partitionState == null || partitionState.getState() == JobPartitionState.State.WAITING; }
public int assignMemberId(Address address, String memberUuid, JobTaskConfiguration configuration) { JobPartitionState[] partitionStates = getPartitionStates(); for (int i = 0; i < partitionStates.length; i++) { JobPartitionState partitionState = partitionStates[i]; if (partitionState == null || partitionState.getState() == JobPartitionState.State.WAITING) { // Seems unassigned so let try to use it if (stateChange(address, i, WAITING, this, configuration) != null) { return i; } } } return -1; } }
public int assignMemberId(Address address, String memberUuid, JobTaskConfiguration configuration) { JobPartitionState[] partitionStates = getPartitionStates(); for (int i = 0; i < partitionStates.length; i++) { JobPartitionState partitionState = partitionStates[i]; if (partitionState == null || partitionState.getState() == JobPartitionState.State.WAITING) { // Seems unassigned so let try to use it if (stateChange(address, i, WAITING, this, configuration) != null) { return i; } } } return -1; } }
public static int calculateDataSize(JobPartitionState jobPartitionState) { int dataSize = AddressCodec.calculateDataSize(jobPartitionState.getOwner()); dataSize += ParameterUtil.calculateDataSize(jobPartitionState.getState().name()); return dataSize; } }
public static int calculateDataSize(JobPartitionState jobPartitionState) { int dataSize = AddressCodec.calculateDataSize(jobPartitionState.getOwner()); dataSize += ParameterUtil.calculateDataSize(jobPartitionState.getState().name()); return dataSize; } }
public static int calculateDataSize(JobPartitionState jobPartitionState) { int dataSize = AddressCodec.calculateDataSize(jobPartitionState.getOwner()); dataSize += ParameterUtil.calculateDataSize(jobPartitionState.getState().name()); return dataSize; } }
public static void encode(JobPartitionState jobPartitionState, ClientMessage clientMessage) { AddressCodec.encode(jobPartitionState.getOwner(), clientMessage); clientMessage.set(jobPartitionState.getState().name()); }
public static void encode(JobPartitionState jobPartitionState, ClientMessage clientMessage) { AddressCodec.encode(jobPartitionState.getOwner(), clientMessage); clientMessage.set(jobPartitionState.getState().name()); }
public static void encode(JobPartitionState jobPartitionState, ClientMessage clientMessage) { AddressCodec.encode(jobPartitionState.getOwner(), clientMessage); clientMessage.set(jobPartitionState.getState().name()); }
public static JobPartitionState.State stateChange(Address owner, int partitionId, JobPartitionState.State currentState, JobProcessInformationImpl processInformation, JobTaskConfiguration configuration) { JobPartitionState[] partitionStates = processInformation.getPartitionStates(); JobPartitionState partitionState = partitionStates[partitionId]; // If not yet assigned we don't need to check owner and state JobPartitionState.State finalState = null; if (partitionState != null) { if (!owner.equals(partitionState.getOwner())) { return null; } if (partitionState.getState() != currentState) { return null; } if (currentState == MAPPING) { finalState = stateChangeMapping(partitionId, partitionState, processInformation, owner, configuration); } else if (currentState == REDUCING) { finalState = stateChangeReducing(partitionId, partitionState, processInformation, owner); } } if (currentState == WAITING) { if (compareAndSwapPartitionState(partitionId, partitionState, processInformation, owner, MAPPING)) { finalState = MAPPING; } } return finalState; }
public static JobPartitionState.State stateChange(Address owner, int partitionId, JobPartitionState.State currentState, JobProcessInformationImpl processInformation, JobTaskConfiguration configuration) { JobPartitionState[] partitionStates = processInformation.getPartitionStates(); JobPartitionState partitionState = partitionStates[partitionId]; // If not yet assigned we don't need to check owner and state JobPartitionState.State finalState = null; if (partitionState != null) { if (!owner.equals(partitionState.getOwner())) { return null; } if (partitionState.getState() != currentState) { return null; } if (currentState == MAPPING) { finalState = stateChangeMapping(partitionId, partitionState, processInformation, owner, configuration); } else if (currentState == REDUCING) { finalState = stateChangeReducing(partitionId, partitionState, processInformation, owner); } } if (currentState == WAITING) { if (compareAndSwapPartitionState(partitionId, partitionState, processInformation, owner, MAPPING)) { finalState = MAPPING; } } return finalState; }
public void checkFullyProcessed(JobProcessInformation processInformation) { if (isOwnerNode()) { JobPartitionState[] partitionStates = processInformation.getPartitionStates(); for (JobPartitionState partitionState : partitionStates) { if (partitionState == null || partitionState.getState() != JobPartitionState.State.PROCESSED) { return; } } final String name = configuration.getName(); final String jobId = configuration.getJobId(); final NodeEngine nodeEngine = configuration.getNodeEngine(); final GetResultOperationFactory operationFactory = new GetResultOperationFactory(name, jobId); // Get the initial future object to eventually set the result and cleanup final TrackableJobFuture future = jobTracker.unregisterTrackableJob(jobId); if (future == null) { // If already handled just return return; } final JobSupervisor jobSupervisor = this; Runnable runnable = new GetResultsRunnable(nodeEngine, operationFactory, jobId, jobSupervisor, future); ExecutionService executionService = nodeEngine.getExecutionService(); ManagedExecutorService executor = executionService.getExecutor(ExecutionService.ASYNC_EXECUTOR); executor.submit(runnable); } }
public void checkFullyProcessed(JobProcessInformation processInformation) { if (isOwnerNode()) { JobPartitionState[] partitionStates = processInformation.getPartitionStates(); for (JobPartitionState partitionState : partitionStates) { if (partitionState == null || partitionState.getState() != JobPartitionState.State.PROCESSED) { return; } } final String name = configuration.getName(); final String jobId = configuration.getJobId(); final NodeEngine nodeEngine = configuration.getNodeEngine(); final GetResultOperationFactory operationFactory = new GetResultOperationFactory(name, jobId); // Get the initial future object to eventually set the result and cleanup final TrackableJobFuture future = jobTracker.unregisterTrackableJob(jobId); if (future == null) { // If already handled just return return; } final JobSupervisor jobSupervisor = this; Runnable runnable = new GetResultsRunnable(nodeEngine, operationFactory, jobId, jobSupervisor, future); ExecutionService executionService = nodeEngine.getExecutionService(); ManagedExecutorService executor = executionService.getExecutor(ExecutionService.ASYNC_EXECUTOR); executor.submit(runnable); } }