public InternalCompletableFuture<Object> callOnAddress(Address address, Operation operation) { // TODO: why are we always executing on the MapService? OperationService operationService = instance.node.nodeEngine.getOperationService(); return operationService.invokeOnTarget(MapService.SERVICE_NAME, operation, address); }
@Override protected InternalCompletableFuture fetchMetadataOf(Address address, List<String> names) { Operation operation = new MapGetInvalidationMetaDataOperation(names); return operationService.invokeOnTarget(SERVICE_NAME, operation, address); }
@Override protected InternalCompletableFuture fetchMetadataOf(Address address, List<String> names) { Operation operation = new MapGetInvalidationMetaDataOperation(names); return operationService.invokeOnTarget(SERVICE_NAME, operation, address); }
private List<Future<Result>> dispatchFullQueryOnAllMembersOnQueryThread(Query query) { Collection<Member> members = clusterService.getMembers(DATA_MEMBER_SELECTOR); List<Future<Result>> futures = new ArrayList<Future<Result>>(members.size()); for (Member member : members) { Operation operation = createQueryOperation(query); Future<Result> future = operationService.invokeOnTarget( MapService.SERVICE_NAME, operation, member.getAddress()); futures.add(future); } return futures; }
@Override public Future invokeOnTarget(Object operation, Address address) { checkNotNull(operation, "operation cannot be null"); checkNotNull(address, "address cannot be null"); Operation op = (Operation) operation; return operationService.invokeOnTarget(MapService.SERVICE_NAME, op, address); }
private List<Future<Result>> dispatchFullQueryOnLocalMemberOnQueryThread(Query query) { Operation operation = mapServiceContext.getMapOperationProvider(query.getMapName()).createQueryOperation(query); Future<Result> result = operationService.invokeOnTarget( MapService.SERVICE_NAME, operation, nodeEngine.getThisAddress()); return singletonList(result); }
@TimeStep(prob = 0.1) public void priority(ThreadState state) throws ExecutionException, InterruptedException { Address address = state.randomAddress(); GenericPriorityOperation op = new GenericPriorityOperation(delayNs); InternalCompletableFuture f = operationService.invokeOnTarget(null, op, address); f.get(); }
@TimeStep(prob = -1) public void normal(ThreadState state) throws ExecutionException, InterruptedException { Address address = state.randomAddress(); GenericOperation op = new GenericOperation(delayNs); InternalCompletableFuture f = operationService.invokeOnTarget(null, op, address); f.get(); }
public void process(EntryTaskScheduler<Object, Object> scheduler, Collection<ScheduledEntry<Object, Object>> entries) { EvictionOperation evictionOperation = new EvictionOperation(store, entries); evictionOperation.setPartitionId(partitionId); nodeEngine.getOperationService().invokeOnTarget(SERVICE_NAME, evictionOperation, nodeEngine.getThisAddress()); } }
@Override public void shutdown() { NodeEngine nodeEngine = getNodeEngine(); Collection<Member> members = nodeEngine.getClusterService().getMembers(); OperationService operationService = nodeEngine.getOperationService(); Collection<Future> calls = new LinkedList<Future>(); for (Member member : members) { Operation op = new ShutdownOperation(name); calls.add(operationService.invokeOnTarget(SERVICE_NAME, op, member.getAddress())); } waitWithDeadline(calls, SHUTDOWN_TIMEOUT, TimeUnit.SECONDS, shutdownExceptionHandler); }
private ICompletableFuture<Object> invokeOnMember(Member member) { Address address = member.getAddress(); Operation operation = operationSupplier.get(); String serviceName = operation.getServiceName(); return nodeEngine.getOperationService().invokeOnTarget(serviceName, operation, address); }
private void invoke(boolean isRemove, Address address, String name, Data key, Data value, long ttl, VersionResponsePair response) { OperationService operationService = nodeEngine.getOperationService(); ReplicateUpdateOperation updateOperation = new ReplicateUpdateOperation(name, key, value, ttl, response, isRemove, nodeEngine.getThisAddress()); updateOperation.setPartitionId(partitionId); updateOperation.setValidateTarget(false); operationService.invokeOnTarget(SERVICE_NAME, updateOperation, address); }
private void destroyCacheOnAllMembers(String name, String callerUuid) { NodeEngine nodeEngine = getNodeEngine(); OperationService operationService = nodeEngine.getOperationService(); Collection<Member> members = nodeEngine.getClusterService().getMembers(); for (Member member : members) { if (!member.localMember() && !member.getUuid().equals(callerUuid)) { CacheDestroyOperation op = new CacheDestroyOperation(name, true); operationService.invokeOnTarget(ICacheService.SERVICE_NAME, op, member.getAddress()); } } }
private void cleanUpLock(OperationService operationService, String uuid, int partitionId, LockStoreImpl lockStore) { Collection<LockResource> locks = lockStore.getLocks(); for (LockResource lock : locks) { Data key = lock.getKey(); if (uuid.equals(lock.getOwner()) && !lock.isTransactional()) { UnlockOperation op = createLockCleanupOperation(partitionId, lockStore.getNamespace(), key, uuid); // op will be executed on partition thread locally. Invocation is to handle retries. operationService.invokeOnTarget(SERVICE_NAME, op, nodeEngine.getThisAddress()); } lockStore.cleanWaitersAndSignalsFor(key, uuid); } }
private void destroyCacheOnAllMembers(String name, String callerUuid) { NodeEngine nodeEngine = getNodeEngine(); OperationService operationService = nodeEngine.getOperationService(); Collection<Member> members = nodeEngine.getClusterService().getMembers(); for (Member member : members) { if (!member.localMember() && !member.getUuid().equals(callerUuid)) { CacheDestroyOperation op = new CacheDestroyOperation(name, true); operationService.invokeOnTarget(ICacheService.SERVICE_NAME, op, member.getAddress()); } } }
private void cleanUpLock(OperationService operationService, String uuid, int partitionId, LockStoreImpl lockStore) { Collection<LockResource> locks = lockStore.getLocks(); for (LockResource lock : locks) { Data key = lock.getKey(); if (uuid.equals(lock.getOwner()) && !lock.isTransactional()) { UnlockOperation op = createLockCleanupOperation(partitionId, lockStore.getNamespace(), key, uuid); // op will be executed on partition thread locally. Invocation is to handle retries. operationService.invokeOnTarget(SERVICE_NAME, op, nodeEngine.getThisAddress()); } lockStore.cleanWaitersAndSignalsFor(key, uuid); } }
private Future invoke(NodeEngine nodeEngine, TransactionLogRecord record, Operation op) { OperationService operationService = nodeEngine.getOperationService(); if (record instanceof TargetAwareTransactionLogRecord) { Address target = ((TargetAwareTransactionLogRecord) record).getTarget(); return operationService.invokeOnTarget(op.getServiceName(), op, target); } return operationService.invokeOnPartition(op.getServiceName(), op, op.getPartitionId()); }
private Future invoke(NodeEngine nodeEngine, TransactionLogRecord record, Operation op) { OperationService operationService = nodeEngine.getOperationService(); if (record instanceof TargetAwareTransactionLogRecord) { Address target = ((TargetAwareTransactionLogRecord) record).getTarget(); return operationService.invokeOnTarget(op.getServiceName(), op, target); } return operationService.invokeOnPartition(op.getServiceName(), op, op.getPartitionId()); }
private void updateCacheListenerConfigOnOtherNodes(CacheEntryListenerConfiguration<K, V> cacheEntryListenerConfiguration, boolean isRegister) { OperationService operationService = getNodeEngine().getOperationService(); Collection<Member> members = getNodeEngine().getClusterService().getMembers(); for (Member member : members) { if (!member.localMember()) { Operation op = new CacheListenerRegistrationOperation(getDistributedObjectName(), cacheEntryListenerConfiguration, isRegister); operationService.invokeOnTarget(CacheService.SERVICE_NAME, op, member.getAddress()); } } }
private void updateCacheListenerConfigOnOtherNodes(CacheEntryListenerConfiguration<K, V> cacheEntryListenerConfiguration, boolean isRegister) { OperationService operationService = getNodeEngine().getOperationService(); Collection<Member> members = getNodeEngine().getClusterService().getMembers(); for (Member member : members) { if (!member.localMember()) { Operation op = new CacheListenerRegistrationOperation(getDistributedObjectName(), cacheEntryListenerConfiguration, isRegister); operationService.invokeOnTarget(CacheService.SERVICE_NAME, op, member.getAddress()); } } }