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 void run2() throws CacheException { getCache(); Map prIDmap = PartitionedRegion.prIdToPR; Iterator itr = prIDmap.values().iterator(); while (itr.hasNext()) { Object o = itr.next(); if (o == PartitionedRegion.PRIdMap.DESTROYED) { continue; } PartitionedRegion prRegion = (PartitionedRegion) o; Iterator bukI = prRegion.getRegionAdvisor().getBucketSet().iterator(); while(bukI.hasNext()) { Integer bucketId = (Integer) bukI.next(); Set bucketOwners = prRegion.getRegionAdvisor().getBucketOwners(bucketId.intValue()); if (bucketOwners.contains(dsMember)) { fail("Failed DistributedMember's = " + dsMember + " bucket [" + prRegion.bucketStringForLogs(bucketId.intValue()) + "] meta-data not cleared for partitioned region " + prRegion); } } } } };
public void run() { Cache cache = getCache(); PartitionedRegion region = (PartitionedRegion) cache.getRegion("region1"); Set<InternalDistributedMember> owners = region.getRegionAdvisor().getBucketOwners(0); assertEquals(2, owners.size()); PartitionedRegionDataStore ds = region.getDataStore(); assertTrue(ds.isManagingBucket(0)); //try to move the bucket from the other member to this one. This should //fail because we already have the bucket assertFalse(ds.moveBucket(0, vm1MemberId, true)); assertEquals(owners, region.getRegionAdvisor().getBucketOwners(0)); } });
private static <K,V> Set<? extends DistributedMember> getAllForKey(final Region<K,V> r, final K key) { PartitionedRegion pr = isPartitionedCheck(r); int bucketId = PartitionedRegionHelper.getHashKey(pr, null, key, null, null); return pr.getRegionAdvisor().getBucketOwners(bucketId); }
private static <K,V> Set<? extends DistributedMember> getAllForKey(final Region<K,V> r, final K key) { PartitionedRegion pr = isPartitionedCheck(r); int bucketId = PartitionedRegionHelper.getHashKey(pr, null, key, null, null); return pr.getRegionAdvisor().getBucketOwners(bucketId); }
public void run2() throws CacheException { for (int rs = 0; rs < regions.length; rs++) { PartitionedRegion p = (PartitionedRegion) getCache().getRegion(regions[rs]); try { for(Iterator it = p.getRegionAdvisor().getBucketSet().iterator(); it.hasNext(); ) { Integer bid = (Integer) it.next(); assertEquals(p.getRedundantCopies() + 1, p.getRegionAdvisor().getBucketOwners(bid.intValue()).size()); List prims = p.getBucketOwnersForValidation(bid.intValue()); assertEquals(p.getRedundantCopies() + 1, prims.size()); int primCount = 0; for (Iterator lit = prims.iterator(); lit.hasNext(); ) { Object[] memAndBoolean = (Object[]) lit.next(); assertEquals(3, memAndBoolean.length); // memberId, isPrimary and hostToken(new) assertTrue(memAndBoolean[0] instanceof DistributedMember); assertEquals(Boolean.class, memAndBoolean[1].getClass()); Boolean isPrimary = (Boolean) memAndBoolean[1]; if (isPrimary.booleanValue()) { primCount++; } } assertEquals(1, primCount); } } catch (ForceReattemptException noGood) { fail("Unexpected force retry", noGood); } } } };
for (Integer bid : failedBuckets) { if (this.pr.getRegionAdvisor().isStorageAssignedForBucket(bid)) { Set ownrs = this.pr.getRegionAdvisor().getBucketOwners(bid); for (Iterator boi = ownrs.iterator(); boi.hasNext(); ) { InternalDistributedMember mem = (InternalDistributedMember)boi.next();
for (Integer bid : failedBuckets) { if (this.pr.getRegionAdvisor().isStorageAssignedForBucket(bid)) { Set ownrs = this.pr.getRegionAdvisor().getBucketOwners(bid); for (Iterator boi = ownrs.iterator(); boi.hasNext(); ) { InternalDistributedMember mem = (InternalDistributedMember)boi.next();
public void run2() throws CacheException { String[] regions = {rName0, rName1, rName2}; for (int rs = 0; rs < regions.length; rs++) { PartitionedRegion p = (PartitionedRegion) getCache().getRegion(regions[rs]); assertNotNull(p); assertTrue(!p.isDestroyed()); assertEquals(numBuckets, p.getTotalNumberOfBuckets()); try { for(int i = 0; i < p.getTotalNumberOfBuckets(); i++) { assertEquals(0, p.getRegionAdvisor().getBucketOwners(i).size()); assertEquals(0, p.getBucketOwnersForValidation(i).size()); } } catch (ForceReattemptException noGood) { fail("Unexpected force retry", noGood); } } } };
public Object call() throws Exception { PartitionedRegion r = (PartitionedRegion) getCache().getRegion(uniqName + "0"); // Create some buckets int i=0; final int bucketTarget = 2; while (r.getRegionAdvisor().getBucketSet().size() < bucketTarget) { if (i > r.getTotalNumberOfBuckets()) { fail("Expected there to be " + bucketTarget + " buckets after " + i + " iterations"); } Object k = new Integer(i++); r.put(k, k.toString()); } // Grab a bucket id Integer bucketId = r.getRegionAdvisor().getBucketSet().iterator().next(); assertNotNull(bucketId); // Find a host for the bucket Set bucketOwners = r.getRegionAdvisor().getBucketOwners(bucketId.intValue()); assertEquals(bucketOwners.size(), redundantCopies + 1); DistributedMember bucketOwner = (DistributedMember) bucketOwners.iterator().next(); assertNotNull(bucketOwner); getLogWriter().info("Selected distributed member " + bucketOwner + " to disconnect because it hosts bucketId " + bucketId); return bucketOwner; } });
public Object call() throws Exception { final PartitionedRegion pr = (PartitionedRegion)getRootRegion().getSubregion(regionName); final int hashKey = PartitionedRegionHelper.getHashKey(pr, null, "oh5", null, null); return pr.getRegionAdvisor().getBucketOwners(hashKey); } });
public Object call() throws Exception { int containsNode = 0; Cache cache = getCache(); PartitionedRegion pr = (PartitionedRegion)cache .getRegion(Region.SEPARATOR + PR_PREFIX + ri.intValue()); Iterator it = pr.getRegionAdvisor().getBucketSet().iterator(); Set nodeList; try { while (it.hasNext()) { Integer bucketId = (Integer) it.next(); nodeList = pr.getRegionAdvisor().getBucketOwners(bucketId.intValue()); if ((nodeList != null) && (nodeList.contains(pr.getMyId()))) { containsNode++; } else { getCache().getLogger().fine("I don't contain member " + pr.getMyId()); } } } catch (NoSuchElementException done) { } return new Integer(containsNode); } };
public void run2() { Cache cache = getCache(); for (int j = 0; j < MAX_REGIONS; j++) { PartitionedRegion pr = (PartitionedRegion) cache.getRegion(Region.SEPARATOR + PR_PREFIX + j); assertNotNull(pr); Integer key; String value; for (int k = 0; k < numPut; k++) { key = new Integer(k); value = j + PR_PREFIX + k; pr.put(key, value); final int bucketId = PartitionedRegionHelper.getHashKey(pr, null, key, null, null); assertEquals(2, pr.getRegionAdvisor().getBucketOwners(bucketId).size()); } getLogWriter().info( "VM0 Done put successfully for PR = " + PR_PREFIX + j); } } });
public Object call() throws Exception { final PartitionedRegion pr = (PartitionedRegion)getRootRegion().getSubregion(regionName); getCache().getCacheTransactionManager().begin(); for (int i=0; i< 20; i++) { Integer key = Integer.valueOf(i); int hKey = PartitionedRegionHelper.getHashKey(pr, key); Set<InternalDistributedMember> owners = pr.getRegionAdvisor().getBucketOwners(hKey); if (owners.contains(server1Id)) { pr.put(key, "txTest"); return i; } } return null; } });
public boolean areSecondariesPingable() { Set<InternalDistributedMember> hostingservers = this.partitionedRegion.getRegionAdvisor() .getBucketOwners(this.getId()); hostingservers.remove(cache.getDistributedSystem().getDistributedMember()); if (cache.getLoggerI18n().fineEnabled()) cache.getLoggerI18n().fine("Pinging secondaries of bucket " + this.getId() + " on servers " + hostingservers); if (hostingservers.size() == 0) return true; return ServerPingMessage.send(cache, hostingservers); }
public boolean areSecondariesPingable() { Set<InternalDistributedMember> hostingservers = this.partitionedRegion.getRegionAdvisor() .getBucketOwners(this.getId()); hostingservers.remove(cache.getDistributedSystem().getDistributedMember()); if (cache.getLoggerI18n().fineEnabled()) cache.getLoggerI18n().fine("Pinging secondaries of bucket " + this.getId() + " on servers " + hostingservers); if (hostingservers.size() == 0) return true; return ServerPingMessage.send(cache, hostingservers); }
Integer key = Integer.valueOf(i); int hKey = PartitionedRegionHelper.getHashKey(pr, key); Set<InternalDistributedMember> owners = pr.getRegionAdvisor().getBucketOwners(hKey); if (owners.contains(server1Id)) { try {
private static boolean dumpBucket(final DistributedMember source, final Region<?, ?> region, final int bucketId) { final PartitionedRegion pr = prCheck(region, bucketId); InternalDistributedMember bucketSource = dataStoreCheck(source, pr); Set<InternalDistributedMember> currentBucketOwners = pr.getRegionAdvisor() .getBucketOwners(bucketId); if (!currentBucketOwners.contains(bucketSource)) { Object[] params = new Object[] { bucketSource, Integer.valueOf(bucketId) }; throw new IllegalArgumentException( LocalizedStrings.PartitionManager_SOURCE_MEMBER_0_BUCKETID_1_DOES_NOT_HAVE_THE_BUCKET .toLocalizedString(params)); } InternalDistributedMember self = (InternalDistributedMember)pr.getCache() .getDistributedSystem().getDistributedMember(); if (bucketSource.equals(self)) { PartitionedRegionDataStore dataStore = pr.getDataStore(); return dataStore.removeBucket(bucketId, true); } else { RemoveBucketResponse response = RemoveBucketMessage.send(bucketSource, pr, bucketId, true); if (response != null) { return response.waitForResponse(); } } return false; }
public Object lockRedundancyLock(InternalDistributedMember moveSource, int bucketId, boolean replaceOffineData) { //TODO prperist - Make this thing easier to find! final PartitionedRegion.BucketLock bl = partitionedRegion .getRegionAdvisor().getBucketAdvisor(bucketId).getProxyBucketRegion() .getBucketLock(); bl.lock(); boolean succeeded =false; try { ProxyBucketRegion buk = partitionedRegion.getRegionAdvisor().getProxyBucketArray()[bucketId]; if (!buk.checkBucketRedundancyBeforeGrab(moveSource, replaceOffineData)) { if(logger.isDebugEnabled()) { logger.debug("Redundancy already satisfied. current owners=", partitionedRegion.getRegionAdvisor().getBucketOwners(bucketId)); } throw new RedundancyAlreadyMetException(); } succeeded=true; } finally { if(!succeeded) { bl.unlock(); } } return bl; }
public Object lockRedundancyLock(InternalDistributedMember moveSource, int bucketId, boolean replaceOffineData) { //TODO prperist - Make this thing easier to find! final PartitionedRegion.BucketLock bl = partitionedRegion .getRegionAdvisor().getBucketAdvisor(bucketId).getProxyBucketRegion() .getBucketLock(); bl.lock(); boolean succeeded =false; try { ProxyBucketRegion buk = partitionedRegion.getRegionAdvisor().getProxyBucketArray()[bucketId]; if (!buk.checkBucketRedundancyBeforeGrab(moveSource, replaceOffineData)) { if(getLogWriter().fineEnabled()) { getLogWriter().fine("Redundancy already satisfied. current owners=" + partitionedRegion.getRegionAdvisor().getBucketOwners(bucketId)); } throw new RedundancyAlreadyMetException(); } succeeded=true; } finally { if(!succeeded) { bl.unlock(); } } return bl; }