@Override public List<Address> getMembers() { return actual.getMembers(); }
@Override public List<Address> getMembers() { return realOne.getMembers(); }
/** * @return {@code true} if the {@code address} is still in the cluster. */ public final boolean isAlive(Address address) { RpcManager rpcManager = cache.getRpcManager(); return rpcManager == null || rpcManager.getMembers().contains(address); }
@Override public void refresh() { handleTopologyChange(rpcManager.getMembers()); }
@Override public void refresh() { handleTopologyChange(rpcManager.getMembers()); }
@Override public boolean isOriginatorMissing(GlobalTransaction gtx) { return isOriginatorMissing(gtx, rpcManager.getMembers()); }
@Override public List<Address> getMembers() { return delegate.getMembers(); }
private boolean skipReaper(Address originator, ByteString cacheName) { ComponentRegistry cr = gcr.getNamedComponentRegistry(cacheName); if (cr == null) { //cache is stopped? doesn't exist? we need to handle it return false; } RpcManager rpcManager = cr.getComponent(RpcManager.class); return isRemote(rpcManager, originator) && //we are not the originator. I rpcManager.getMembers().contains(originator); //originator is still in the view. }
@Override public synchronized void lazyInitialize() { if (initialized) { return; } this.initialized = true; final List<Address> members = rpcManager.getMembers(); assert members != null; assert members.size() > 0; assert members.get(0) != null; final Address initialMaster = members.get(0); lastSeenViewId.set(rpcManager.getTransport().getViewId()); if (thisIsNewMaster(initialMaster)) { acquireControlStart(); } else { updateRoutingToNewRemote(initialMaster); } }
@Override public synchronized void lazyInitialize() { if (initialized) { return; } this.initialized = true; final List<Address> members = rpcManager.getMembers(); assert members != null; assert members.size() > 0; assert members.get(0) != null; final Address initialMaster = members.get(0); lastSeenViewId.set(rpcManager.getTransport().getViewId()); if (thisIsNewMaster(initialMaster)) { acquireControlStart(); } else { updateRoutingToNewRemote(initialMaster); } }
@ManagedAttribute(description = "Number of replicas for each key", displayName = "Replication Degree") public double getReplicationDegree() { switch (cacheConfiguration.clustering().cacheMode()) { case DIST_SYNC: case DIST_ASYNC: return cacheConfiguration.clustering().hash().numOwners(); case REPL_ASYNC: case REPL_SYNC: return rpcManager.getMembers().size(); default: return 1; } }
private void clearLockIfNeeded(AffinityIndexManager affinityIndexManager) { List<Address> members = rpcManager.getMembers(); Address lockHolder = affinityIndexManager.getLockHolder(); log.debugf("Current members are %s, lock holder is %s", members, lockHolder); if (lockHolder != null && !members.contains(lockHolder)) { Directory directory = affinityIndexManager.getDirectoryProvider().getDirectory(); log.debugf("Forcing clear of index lock %s", affinityIndexManager.getIndexName()); ((DirectoryExtensions) directory).forceUnlock(IndexWriter.WRITE_LOCK_NAME); } }
private void clearLockIfNeeded(AffinityIndexManager affinityIndexManager) { List<Address> members = rpcManager.getMembers(); Address lockHolder = affinityIndexManager.getLockHolder(); log.debugf("Current members are %s, lock holder is %s", members, lockHolder); if (lockHolder != null && !members.contains(lockHolder)) { Directory directory = affinityIndexManager.getDirectoryProvider().getDirectory(); log.debugf("Forcing clear of index lock %s", affinityIndexManager.getIndexName()); ((DirectoryExtensions) directory).forceUnlock(IndexWriter.WRITE_LOCK_NAME); } }
@Test(expectedExceptions = TimeoutException.class) public void testTimeoutWithResponseFilter() { RpcManager rpcManager = advancedCache(0, CACHE_NAME).getRpcManager(); final List<Address> members = rpcManager.getMembers(); //wait for the responses from the last two members. ResponseFilter filter = new ResponseFilter() { private int expectedResponses = 2; @Override public boolean isAcceptable(Response response, Address sender) { if (sender.equals(members.get(2)) || sender.equals(members.get(3))) { expectedResponses--; } return true; } @Override public boolean needMoreResponses() { return expectedResponses > 0; } }; doTest(filter, false, false); }
private void doTest(ResponseFilter filter, boolean totalOrder, boolean broadcast) { RpcManager rpcManager = advancedCache(0, CACHE_NAME).getRpcManager(); RpcOptionsBuilder builder = rpcManager.getRpcOptionsBuilder(ResponseMode.SYNCHRONOUS, totalOrder ? DeliverOrder.TOTAL : DeliverOrder.NONE) .timeout(1000, TimeUnit.MILLISECONDS); ArrayList<Address> recipients = null; if (!broadcast) { List<Address> members = rpcManager.getMembers(); recipients = new ArrayList<>(2); recipients.add(members.get(2)); recipients.add(members.get(3)); } if (filter != null) { builder.responseFilter(filter); } rpcManager.invokeRemotely(recipients, new SleepingCacheRpcCommand(ByteString.fromString(CACHE_NAME), 5000), builder.build()); Assert.fail("Timeout exception wasn't thrown"); }
@Override public void sendToAll(ReplicableCommand command, DeliverOrder deliverOrder) { rpcCollector.addRPC(new RpcDetail(getAddress(), command, cacheName, delegate.getMembers())); delegate.sendToAll(command, deliverOrder); }
private void createCluster() { waitForClusterToForm(CACHE_NAME); List<Address> members = getCache(0).getRpcManager().getMembers(); TestingUtil.waitForNoRebalance(caches()); assertTrue(members.size() == 4); }
public void testCancelAndGet() throws Exception { DistributedExecutorService des = createDES(getCache()); List<Address> cacheMembers = getCache().getAdvancedCache().getRpcManager().getMembers(); List<Address> members = new ArrayList<>(cacheMembers); assertEquals(caches(cacheName()).size(), members.size()); members.remove(getCache().getAdvancedCache().getRpcManager().getAddress()); DistributedTaskBuilder<Integer> tb = des.createDistributedTaskBuilder(new SleepingSimpleCallable(latchHolder)); final Future<Integer> future = des.submit(members.get(0),tb.build()); future.cancel(true); expectException(CancellationException.class, () -> future.get()); latchHolder.get().open(); }
protected void checkConsistencyAcrossCluster(String cacheName, Configuration configuration) { // Initialize the partitioner to ensure we can compare config equality configuration.clustering().hash().keyPartitioner().init(configuration.clustering().hash()); for (EmbeddedCacheManager m : cacheManagers) { Configuration actualConfiguration = m.getCacheConfiguration(cacheName); assertNotNull("Cache " + cacheName + " missing from " + m, actualConfiguration); assertEquals(configuration, actualConfiguration); Cache<Object, Object> cache = m.getCache(cacheName); assertEquals(cacheManagers.size(), cache.getAdvancedCache().getRpcManager().getMembers().size()); } }
private void printCacheContents() { log.debugf("%d cache manager(s)", getCacheManagers().size()); for (int i = 0; i < getCacheManagers().size(); i++) { Cache<String, String> testCache = manager(i).getCache(testCacheName); log.debugf(" Contents of Cache with CacheManager #%d (%s, all members: %s)", i, address(i), testCache.getAdvancedCache().getRpcManager().getMembers()); Set<String> keySet = testCache.keySet(); log.debugf(" keySet = %s", keySet); for (String key : keySet) { log.debugf(" key: %s value: %s", key, testCache.get(key)); } } } }