while (iterator.hasNext()) { Owner owner = iterator.next(); if (!members.contains(owner.getAddress())) { iterator.remove(); sendRemoveConsumerRequest(owner); while (iterator.hasNext()) { Owner owner = iterator.next(); if (!members.contains(owner.getAddress())) { iterator.remove(); sendRemoveRunRequest(owner); if (!members.contains(owner.getAddress())) { Runnable runnable = entry.getValue();
protected void handleTaskRequest(long requestId, Address address) { final Owner consumer; Owner source = new Owner(address, requestId); _consumerLock.lock(); try { consumer = _consumersAvailable.poll(); // We don't add duplicate run requests - this allows for resubmission // if it is thought the message may have been dropped if (consumer == null && !_runRequests.contains(source)) { _runRequests.add(source); } } finally { _consumerLock.unlock(); } if (consumer != null) { sendRequest(source.getAddress(), Type.CONSUMER_FOUND, consumer.getRequestId(), consumer.getAddress()); sendRemoveConsumerRequest(consumer); } else { sendNewRunRequest(source); } }
protected void handleConsumerReadyRequest(long requestId, Address address) { Owner requestor; final Owner source = new Owner(address, requestId); _consumerLock.lock(); try { requestor = _runRequests.poll(); // We don't add duplicate consumers - this allows for resubmission // if it is thought the message may have been dropped if (requestor == null && !_consumersAvailable.contains(source)) { _consumersAvailable.add(source); } } finally { _consumerLock.unlock(); } if (requestor != null) { sendRequest(requestor.getAddress(), Type.CONSUMER_FOUND, source.getRequestId(), source.getAddress()); sendRemoveRunRequest(requestor); } else { sendNewConsumerRequest(source); } }
if (local_addr.equals(owner.getAddress())) { if(log.isTraceEnabled()) log.trace("[redirect] <--> [" + local_addr + "] " sendRequest(owner.getAddress(), type, owner.requestId, valueToSend); log.warn("Cancelling requestId didn't match waiting"); sendRequest(owner.getAddress(), Type.INTERRUPT_RUN, owner.getRequestId(), null); log.warn("Cancelling requestId didn't match waiting"); sendRequest(owner.getAddress(), Type.INTERRUPT_RUN, owner.getRequestId(), null);
while (iterator.hasNext()) { Owner owner = iterator.next(); if (!members.contains(owner.getAddress())) { iterator.remove(); sendRemoveConsumerRequest(owner); while (iterator.hasNext()) { Owner owner = iterator.next(); if (!members.contains(owner.getAddress())) { iterator.remove(); sendRemoveRunRequest(owner); if (!members.contains(owner.getAddress())) { Runnable runnable = entry.getValue();
owner.getAddress()); _awaitingReturn.put(owner, runnable); if (local_addr.equals(owner.getAddress())) { handleTaskSubmittedRequest(runnable, local_addr, requestId, threadId); if (runnable instanceof DistributedFuture) { Callable<?> callable = ((DistributedFuture<?>)runnable).getCallable(); sendThreadRequest(owner.getAddress(), threadId, Type.RUN_SUBMITTED, requestId, callable); sendThreadRequest(owner.getAddress(), threadId, Type.RUN_SUBMITTED, requestId, runnable);
protected void copyQueueTo(List<Address> new_joiners) { Set<Owner> copyRequests; Set<Owner> copyConsumers; _consumerLock.lock(); try { copyRequests = new HashSet<>(_runRequests); copyConsumers = new HashSet<>(_consumersAvailable); } finally { _consumerLock.unlock(); } if(log.isTraceEnabled()) log.trace("copying queue to " + new_joiners); for(Address joiner: new_joiners) { for(Owner address: copyRequests) { sendRequest(joiner, Type.CREATE_RUN_REQUEST, address.getRequestId(), address.getAddress()); } for(Owner address: copyConsumers) { sendRequest(joiner, Type.CREATE_CONSUMER_READY, address.getRequestId(), address.getAddress()); } } }
protected void handleConsumerReadyRequest(long requestId, Address address) { Owner requestor; final Owner source = new Owner(address, requestId); _consumerLock.lock(); try { requestor = _runRequests.poll(); // We don't add duplicate consumers - this allows for resubmission // if it is thought the message may have been dropped if (requestor == null && !_consumersAvailable.contains(source)) { _consumersAvailable.add(source); } } finally { _consumerLock.unlock(); } if (requestor != null) { sendRequest(requestor.getAddress(), Type.CONSUMER_FOUND, source.getRequestId(), source.getAddress()); sendRemoveRunRequest(requestor); } else { sendNewConsumerRequest(source); } }
protected void handleTaskRequest(long requestId, Address address) { final Owner consumer; Owner source = new Owner(address, requestId); _consumerLock.lock(); try { consumer = _consumersAvailable.poll(); // We don't add duplicate run requests - this allows for resubmission // if it is thought the message may have been dropped if (consumer == null && !_runRequests.contains(source)) { _runRequests.add(source); } } finally { _consumerLock.unlock(); } if (consumer != null) { sendRequest(source.getAddress(), Type.CONSUMER_FOUND, consumer.getRequestId(), consumer.getAddress()); sendRemoveConsumerRequest(consumer); } else { sendNewRunRequest(source); } }
protected void updateBackups(Type type, Owner obj) { synchronized(backups) { for(Address backup: backups) sendRequest(backup, type, obj.getRequestId(), obj.getAddress()); } }
if (local_addr.equals(owner.getAddress())) { if(log.isTraceEnabled()) log.trace("[redirect] <--> [" + local_addr + "] " sendRequest(owner.getAddress(), type, owner.requestId, valueToSend); log.warn("Cancelling requestId didn't match waiting"); sendRequest(owner.getAddress(), Type.INTERRUPT_RUN, owner.getRequestId(), null); log.warn("Cancelling requestId didn't match waiting"); sendRequest(owner.getAddress(), Type.INTERRUPT_RUN, owner.getRequestId(), null);
owner.getAddress()); _awaitingReturn.put(owner, runnable); if (local_addr.equals(owner.getAddress())) { handleTaskSubmittedRequest(runnable, local_addr, requestId, threadId); if (runnable instanceof DistributedFuture) { Callable<?> callable = ((DistributedFuture<?>)runnable).getCallable(); sendThreadRequest(owner.getAddress(), threadId, Type.RUN_SUBMITTED, requestId, callable); sendThreadRequest(owner.getAddress(), threadId, Type.RUN_SUBMITTED, requestId, runnable);
protected void copyQueueTo(List<Address> new_joiners) { Set<Owner> copyRequests; Set<Owner> copyConsumers; _consumerLock.lock(); try { copyRequests = new HashSet<>(_runRequests); copyConsumers = new HashSet<>(_consumersAvailable); } finally { _consumerLock.unlock(); } if(log.isTraceEnabled()) log.trace("copying queue to " + new_joiners); for(Address joiner: new_joiners) { for(Owner address: copyRequests) { sendRequest(joiner, Type.CREATE_RUN_REQUEST, address.getRequestId(), address.getAddress()); } for(Owner address: copyConsumers) { sendRequest(joiner, Type.CREATE_CONSUMER_READY, address.getRequestId(), address.getAddress()); } } }
protected void updateBackups(Type type, Owner obj) { synchronized(backups) { for(Address backup: backups) sendRequest(backup, type, obj.getRequestId(), obj.getAddress()); } }