public boolean done() { int numProfiles; numProfiles = adv.adviseReplicates().size(); return numProfiles == expectedProfiles; } public String description() {
/** * If this region has concurrency controls enabled this will pull any missing * changes from other replicates using InitialImageOperation and a filtered * chunking protocol. */ public void synchronizeForLostMember(InternalDistributedMember lostMember, VersionSource lostVersionID) { if (this.concurrencyChecksEnabled == false) { return; } CacheDistributionAdvisor advisor = getCacheDistributionAdvisor(); Set<InternalDistributedMember> targets = advisor.adviseInitializedReplicates(); for (InternalDistributedMember target: targets) { synchronizeWith(target, lostVersionID, lostMember); } }
public void finishPendingDestroy() { //send a message to peers indicating that they should remove this profile long viewVersion = -1; viewVersion = advisor.startOperation(); try { if(logger.infoEnabled()) { advisor.getLogWriter().info(LocalizedStrings.DEBUG, "The advisee is " + advisor.getAdvisee()); } if (advisor.getAdvisee() != null && (advisor.getAdvisee() instanceof ProxyBucketRegion)) { ((ProxyBucketRegion)advisor.getAdvisee()).clearIndexes(advisor.getLogWriter()); } RemovePersistentMemberMessage.send(advisor.adviseProfileUpdate(), advisor.getDistributionManager(), regionPath, getPersistentID(), getInitializingID()); storage.finishPendingDestroy(); } finally { if (viewVersion != -1) { advisor.endOperation(viewVersion); } } synchronized(lock) { recoveredMembers.clear(); } }
public void finishPendingDestroy() { //send a message to peers indicating that they should remove this profile long viewVersion = advisor.startOperation(); try { RemovePersistentMemberMessage.send(advisor.adviseProfileUpdate(), advisor.getDistributionManager(), regionPath, getPersistentID(), getInitializingID()); storage.finishPendingDestroy(); } finally { if (viewVersion != -1) { advisor.endOperation(viewVersion); } } synchronized(lock) { recoveredMembers.clear(); } }
public PersistentMembershipView getMembershipView() { if(!initialized) { return null; } Set<PersistentMemberID> offlineMembers = getPersistedMembers(); Map<InternalDistributedMember, PersistentMemberID> onlineMembers = advisor .adviseInitializedPersistentMembers(); offlineMembers.removeAll(onlineMembers.values()); PersistentMemberID myId = getPersistentID(); if(myId != null) { onlineMembers.put(advisor.getDistributionManager().getDistributionManagerId(), myId); } PersistentMembershipView view = new PersistentMembershipView( offlineMembers, onlineMembers, memberManager.getRevokedMembers()); return view; }
DistributedRegion r = (DistributedRegion)event.getRegion(); Collection replicates = onlyPersistent ? r.getCacheDistributionAdvisor() .adviseInitializedPersistentMembers().keySet() : r .getCacheDistributionAdvisor().adviseInitializedReplicates(); if (replicates.isEmpty()) { return false;
members = cda.adviseReplicates(); dm = cda.getDistributionManager();
replicates = advisor.adviseInitializedReplicates(); final Iterator<InternalDistributedMember> iter; member = null; && !advisor.hasUninitializedReplicate()) { replicates = advisor.adviseInitializedReplicates();
advisor.addMembershipAndProxyListener(listener); addListener(listener); try { Set<PersistentMemberID> previouslyOnlineMembers = getPersistedOnlineOrEqualMembers(); advisor.getAdvisee().getCancelCriterion().checkCancelInProgress(null); try { InitialImageAdvice advice = advisor.adviseInitialImage(previousAdvice, true); advice = advisor.adviseInitialImage(previousAdvice, true); if (isPersistAdvisorDebubEnabled) { logger.debug(LogMarker.PERSIST_ADVISOR, "{}-{}: Acquired the lock. This member will initialize", shortDiskStoreId(), regionPath); advisor.removeMembershipAndProxyListener(listener); removeListener(listener);
/** Same as adviseGeneric */ public Set adviseDestroyRegion() { return adviseGeneric(); }
private Set<PersistentMemberID> checkWithLocatorIfIamFirst(Set<InternalDistributedMember> singleton) { Set<PersistentMemberID> ids = StartupSequenceQueryMesasge.send(singleton, advisor.getDistributionManager(), regionPath); return ids; }
public void waitForMembershipChange() throws InterruptedException { long waitThreshold = advisor.getDistributionManager().getConfig().getAckWaitThreshold(); // reduce the first log time from 15secs so that higher layers can report // sooner to user if (waitThreshold >= 5) { waitThreshold = waitThreshold / 5; } final long warningTime = System.currentTimeMillis() + TimeUnit.SECONDS.toMillis(waitThreshold); boolean warned = false; synchronized (this) { try { while (!membershipChanged && !isClosed && !doNotWait) { checkInterruptedByShutdownAll(); advisor.getAdvisee().getCancelCriterion().checkCancelInProgress(null); this.wait(100); if (!warned && System.currentTimeMillis() > warningTime) { //logWaitingForMember(allMembersToWaitFor, offlineMembersToWaitFor); advisor.getLogWriter().info(LocalizedStrings.DEBUG, "Waiting for atleast one server to come up."); //logWaitingForMember(); warned = true; } } this.membershipChanged = false; doNotWait = false; } finally { } } } }
public void testNetWriteAdvice() throws Exception { final String rgnName = getUniqueName(); Set expected = new HashSet(); for (int i = 0; i < vms.length; i++) { VM vm = vms[i]; InternalDistributedMember id = ids[i]; if (i % 2 == 0) { expected.add(id); } final int index = i; vm.invoke(new CacheSerializableRunnable("CacheAdvisorTest.testNetWriteAdvice") { public void run2() throws CacheException { AttributesFactory fac = new AttributesFactory(); if (index % 2 == 0) { fac.setCacheWriter(new CacheWriterAdapter()); } createRegion(rgnName, fac.create()); } }); } RegionAttributes attrs = new AttributesFactory().create(); DistributedRegion rgn = (DistributedRegion)createRegion(rgnName, attrs); assertEquals(expected, rgn.getCacheDistributionAdvisor().adviseNetWrite()); }
public InitialImageAdvice adviseInitialImage(InitialImageAdvice previousAdvice) { return adviseInitialImage(previousAdvice, false); }
public void waitForChange(Set<PersistentMemberID> allMembersToWaitFor, Set<PersistentMemberID> offlineMembersToWaitFor) throws InterruptedException { long waitThreshold = advisor.getDistributionManager().getConfig().getAckWaitThreshold(); while(!membershipChanged && !isClosed && !doNotWait) { checkInterruptedByShutdownAll(); advisor.getAdvisee().getCancelCriterion().checkCancelInProgress(null); this.wait(100); if(!warned && System.currentTimeMillis() > warningTime) {
int numProfiles = 0; if (currentPolicy == DataPolicy.PRELOADED) { numProfiles = adv.advisePreloadeds().size()+adv.adviseReplicates().size(); } else { numProfiles = adv.adviseReplicates().size();
start = stats.startNetsearch(); try { List<InternalDistributedMember> replicates = new ArrayList(advisor.adviseInitializedReplicates()); if (replicates.size() > 1) { Collections.shuffle(replicates); Set recipients = this.advisor.adviseNetSearch(); if (recipients.isEmpty()) { return;
assertEquals(expected, rgn.getCacheDistributionAdvisor().adviseNetLoad());
try { while(!isClosed) { advisor.getAdvisee().getCancelCriterion().checkCancelInProgress(null); Map<InternalDistributedMember, PersistentMemberID> onlineMembers = advisor.adviseInitializedPersistentMembers(); if(onlineMembers != null) { if(updateMembershipView(onlineMembers.keySet())) {
Map<InternalDistributedMember, PersistentMemberID> onlineMembers; if(!atomicCreation) { onlineMembers = advisor.adviseInitializedPersistentMembers(); } else { onlineMembers = advisor.advisePersistentMembers(); Collection<PersistentMemberID> allMembers = advisor.advisePersistentMembers().values(); Set<DiskStoreID> runningDiskStores = new HashSet<DiskStoreID>(); for(PersistentMemberID mem : allMembers) {