/** * Takes a list of BucketProfileAndId and adds them to thsi advisors * proxy buckets. * @since 5.5 */ public void putBucketRegionProfiles(ArrayList l) { int size = l.size(); for (int i=0; i < size; i++) { BucketProfileAndId bp = (BucketProfileAndId)l.get(i); int id = bp.getId(); getBucket(id).getBucketAdvisor().putProfile(bp.getBucketProfile()); } } @Override
public void run2() throws CacheException { for (int rs = 0; rs < regions.length; rs++) { PartitionedRegion p = (PartitionedRegion) getCache().getRegion(regions[rs]); assertNotNull(p); assertEquals(3, p.getTotalNumberOfBuckets()); // Create one bucket p.put(new Integer(0), "zero"); assertEquals(1, p.getRegionAdvisor().getCreatedBucketsCount()); } } });
/** * * @param refTablePR * @return bucketID of the bucket which has no primary in the system or -1 if all are having primary */ private static int checkIfAllHostedBucketsHavePrimary(PartitionedRegion refTablePR) { RegionAdvisor ra = refTablePR.getRegionAdvisor(); Set<Integer> allHostedBuckets = ra.getBucketSet(); for( int bucketID:allHostedBuckets) { BucketAdvisor ba = ra.getBucketAdvisor(bucketID); if(!ba.hasPrimary()) { return bucketID; } } return -1; }
static protected void checkBucketMetadataCleanup(final PartitionedRegion pr, final InternalDistributedMember memberId) { Iterator itr = pr.getRegionAdvisor().getBucketSet().iterator(); try { while (itr.hasNext()) { final Integer bucketId = (Integer)itr.next(); assertTrue("CLeanup did not remove member from bucket meta-data, member=" + memberId + " from bucket=" + pr.bucketStringForLogs(bucketId.intValue()), !pr.getRegionAdvisor() .getBucketOwners(bucketId.intValue()).contains(memberId)); } } catch (NoSuchElementException done) { } } }
public List<DistributedMember> orderDataStoresUsingBucketCount(final Set nodes) { final Set<NodeBucketSize> orderedSet = new TreeSet<NodeBucketSize>(); final List<DistributedMember> orderedList = new ArrayList<DistributedMember>(); final DistributedMember self = getDistributionManager().getDistributionManagerId(); adviseFilter(new Filter() { public boolean include(Profile profile) { if (profile instanceof PartitionProfile && nodes.contains(profile.getDistributedMember())) { PartitionProfile p = (PartitionProfile)profile; orderedSet.add(new NodeBucketSize(p.numBuckets, p .getDistributedMember())); return true; } else if (profile instanceof PartitionProfile && nodes.contains(self)) { orderedSet.add(new NodeBucketSize(getBucketSet().size(), self)); return true; } return false; } }); if (nodes.contains(self) && !orderedSet.contains(new NodeBucketSize(getBucketSet().size(), self))){ orderedSet.add(new NodeBucketSize(getBucketSet().size(),self)); } for (NodeBucketSize node : orderedSet) { orderedList.add(node.member); } return orderedList; }
assertNotNull(pr); assertTrue(pr.getRegionAdvisor().getNumProfiles() > 0); assertTrue(pr.getRegionAdvisor().getNumDataStores() > 0); final int bucketSetSize = pr.getRegionAdvisor().getCreatedBucketsCount(); getLogWriter().info("BucketSet size " + bucketSetSize); if (bucketSetSize != 0) { Set buckets = pr.getRegionAdvisor().getBucketSet(); Iterator it = buckets.iterator(); int numBucketsWithStorage = 0; while(true) { Integer bucketId = (Integer) it.next(); pr.getRegionAdvisor().getBucket(bucketId.intValue()).getBucketAdvisor() .dumpProfiles(pr.getCache().getLoggerI18n(), "Bucket owners for bucket " + pr.bucketStringForLogs(bucketId.intValue()));
RegionAdvisor customeAdvisor = ((PartitionedRegion)customerPR) .getRegionAdvisor(); Iterator customerIterator = customeAdvisor.getBucketSet().iterator(); while (customerIterator.hasNext()) { Integer bucketId = (Integer)customerIterator.next(); Set someOwners = customeAdvisor.getBucketOwners(bucketId.intValue()); customerMap.put(bucketId, someOwners); if (customeAdvisor.isPrimaryForBucket(bucketId.intValue())) { customerPrimaryMap.put(bucketId, customeAdvisor .getPrimaryMemberForBucket(bucketId.intValue()).getId()); RegionAdvisor orderAdvisor = ((PartitionedRegion)orderPR) .getRegionAdvisor(); Iterator orderIterator = orderAdvisor.getBucketSet().iterator(); while (orderIterator.hasNext()) { Integer bucketId = (Integer)orderIterator.next(); Set someOwners = orderAdvisor.getBucketOwners(bucketId.intValue()); orderMap.put(bucketId, someOwners); if (orderAdvisor.isPrimaryForBucket(bucketId.intValue())) { orderPrimaryMap.put(bucketId, orderAdvisor.getPrimaryMemberForBucket( bucketId.intValue()).getId()); RegionAdvisor shipmentAdvisor = ((PartitionedRegion)shipmentPR) .getRegionAdvisor(); Iterator shipmentIterator = shipmentAdvisor.getBucketSet().iterator(); while (shipmentIterator.hasNext()) { Integer bucketId = (Integer)shipmentIterator.next(); Set someOwners = shipmentAdvisor.getBucketOwners(bucketId.intValue()); shipmentMap.put(bucketId, someOwners);
logger.trace(LogMarker.DA, "applying queued profile addition for bucket {}", qbp.bucketId); getBucket(qbp.bucketId).getBucketAdvisor().putProfile( qbp.bucketProfile); !getDistributionManager().isCurrentMember(qbp.memberId)) { boolean crashed; if (qbp.memberDeparted) { crashed = !stillInView(qbp.memberId); this.preInitQueueMonitor.notifyAll(); if (!finishedInitQueue && getAdvisee().getCancelCriterion().cancelInProgress() == null) { logger.error(LocalizedMessage.create(LocalizedStrings.RegionAdvisor_FAILED_TO_PROCESS_ALL_QUEUED_BUCKETPROFILES_FOR_0, getAdvisee()));
.adviseDataStore(), this, bucketId, true); List remoteInfos = new LinkedList(response.waitForPrimaryInfos()); if (getRegionAdvisor().getBucket(bucketId).isHosting()) { if (getRegionAdvisor().isPrimaryForBucket(bucketId)) { remoteInfos.add(new Object[] { getDistributionManager().getId(), Boolean.TRUE, "" });
RegionAdvisor customeAdvisor = ((PartitionedRegion)customerPR) .getRegionAdvisor(); Iterator customerIterator = customeAdvisor.getBucketSet().iterator(); while (customerIterator.hasNext()) { Integer bucketId = (Integer)customerIterator.next(); if (customeAdvisor.isPrimaryForBucket(bucketId.intValue())) { customerPrimaryMap.put(bucketId, customeAdvisor .getPrimaryMemberForBucket(bucketId.intValue()).getId()); RegionAdvisor orderAdvisor = ((PartitionedRegion)orderPR) .getRegionAdvisor(); Iterator orderIterator = orderAdvisor.getBucketSet().iterator(); while (orderIterator.hasNext()) { Integer bucketId = (Integer)orderIterator.next(); if (orderAdvisor.isPrimaryForBucket(bucketId.intValue())) { orderPrimaryMap.put(bucketId, orderAdvisor.getPrimaryMemberForBucket( bucketId.intValue()).getId()); RegionAdvisor shipmentAdvisor = ((PartitionedRegion)shipmentPR) .getRegionAdvisor(); Iterator shipmentIterator = shipmentAdvisor.getBucketSet().iterator(); while (shipmentIterator.hasNext()) { Integer bucketId = (Integer)shipmentIterator.next(); if (shipmentAdvisor.isPrimaryForBucket(bucketId.intValue())) { shipmentPrimaryMap.put(bucketId, shipmentAdvisor .getPrimaryMemberForBucket(bucketId.intValue()).getId());
public RegionStatus(PartitionedRegion region) { this.thisMember = createPersistentMemberID(region); this.region = region.getFullPath(); this.bucketRegions = region.getRegionAdvisor().getProxyBucketArray(); }
if( ! advisor.isPrimaryForBucket(bucketId) && advisor.isStorageAssignedForBucket(bucketId)) { continue;
@Override protected boolean operateOnPartitionedRegion(DistributionManager dm, PartitionedRegion pr, long startTime) throws CacheException { PrimaryInfo pinfo = null; if (this.onlyReturnPrimaryInfo) { pinfo = new PrimaryInfo(pr.getRegionAdvisor().getBucket(this.bucketId).isHosting(), pr.getRegionAdvisor().isPrimaryForBucket(this.bucketId), ""); } else { pr.dumpB2NForBucket(this.bucketId); } DumpB2NReplyMessage.send(getSender(), getProcessorId(), dm, pinfo); return false; }
public void waitForProfileStatus(int status) { ProfileShutdownListener listener = new ProfileShutdownListener(); addProfileChangeListener(listener); try { int memberNum = 0; String regionName = getPartitionedRegion().getFullPath(); do { Region pr = getPartitionedRegion().getCache().getRegion(regionName); if (pr == null || pr.isDestroyed()) break; Set members = adviseNotAtShutDownAllStatus(status); memberNum = members.size(); if (memberNum >0) { getDistributionManager().getLoggerI18n().fine("waitForProfileStatus "+status+" at PR:"+getPartitionedRegion().getFullPath()+", expecting "+memberNum+" members:"+members); listener.waitForChange(); } } while (memberNum > 0); } finally { removeProfileChangeListener(listener); } }
int numOfBuckets) assertEquals(0, pr.getRegionAdvisor().getCreatedBucketsCount()); final RegionAdvisor ra = pr.getRegionAdvisor(); int nodeListCnt = 0; assertTrue(ra.getBucket(i).getBucketAdvisor().putProfile(bp, forceBadProfile));
members = ra.adviseGeneric(); dm = ra.getDistributionManager();
public boolean areAllBucketsHosted(final Set<Integer> bucketSet) { // boolean arr[] = new boolean[]{false, true, false, true , false , false , false , false }; // Random random = new Random(); // int num = random.nextInt(7); // System.out.println("PRDS.verifyBuckets returning " + arr[num]); // return arr[num]; for (Integer bucket : bucketSet) { if (!this.partitionedRegion.getRegionAdvisor().getBucketAdvisor(bucket) .isHosting()) { return false; } } return true; }
public void run() { PartitionedRegion region1 = (PartitionedRegion) basicGetCache().getRegion(CustomerPartitionedRegionName); MyResourceObserver observer = (MyResourceObserver) InternalResourceManager.getResourceObserver(); try { observer.waitForRegion(region1, 60 * 1000); } catch (InterruptedException e) { throw new RuntimeException(e); } //there should be no buckets on this node, because we don't //have all of the colocated regions assertEquals(Collections.emptyList(), region1.getLocalBucketsListTestOnly()); assertEquals(0, region1.getRegionAdvisor().getBucketRedundancy(1)); } };
protected final Iterator<Integer> createBucketSetI( final Set<Integer> bucketSet) { if (bucketSet != null) { return bucketSet.iterator(); } return getRegionAdvisor().getBucketSet().iterator(); }
while (minimumWriteRedundancy > 0 && getRegionAdvisor().getBucketRedundancy(bucketId) < this.minimumWriteRedundancy) { this.cache.getCancelCriterion().checkCancelInProgress(null); if ( ! getRegionAdvisor().isStorageAssignedForBucket(bucketId, this.minimumWriteRedundancy, false)) { if (isDebugEnabled) { logger.debug("No storage assigned for bucket ({}{}{}) writer", getPRId(), BUCKET_ID_SEPARATOR, bucketId); int red = getRegionAdvisor().getBucketRedundancy(bucketId); final TimeoutException noTime = new TimeoutException( LocalizedStrings.PartitionedRegion_ATTEMPT_TO_ACQUIRE_PRIMARY_NODE_FOR_WRITE_ON_BUCKET_0_TIMED_OUT_IN_1_MS_CURRENT_REDUNDANCY_2_DOES_NOT_SATISFY_MINIMUM_3