@Override public void memberRemoved(PersistentMemberID persistentID, boolean revoked) { if (!revoked) { return; } DistributedMember dmem = prRegion.getSystem().getDistributedMember(); if (logger.isDebugEnabled()) { logger.debug( "Persistent Membership Listener invoked on DistributedMember = {} for removed memberId = {}", dmem, persistentID); } if (!prRegion.isCacheClosing() && !prRegion.isDestroyed() && !prRegion.isFixedPartitionedRegion()) { scheduleRedundancyRecovery(persistentID); } } }
public void finishIncompleteBucketCreation(int bucketId) { String partitionName = null; final long startTime = PartitionedRegionStats.startTime(); if (this.prRegion.isFixedPartitionedRegion()) { FixedPartitionAttributesImpl fpa = PartitionedRegionHelper.getFixedPartitionAttributesForBucket(this.prRegion, bucketId); partitionName = fpa.getPartitionName(); } createBucketAtomically(bucketId, 0, startTime, true, partitionName); }
private static int getNumberOfBuckets(PartitionedRegion pr) { if (pr.isFixedPartitionedRegion()) { int numBuckets = 0; Set<FixedPartitionAttributesImpl> fpaSet = new HashSet<FixedPartitionAttributesImpl>( pr.getRegionAdvisor().adviseAllFixedPartitionAttributes()); if (pr.getFixedPartitionAttributesImpl() != null) { fpaSet.addAll(pr.getFixedPartitionAttributesImpl()); } for (FixedPartitionAttributesImpl fpa : fpaSet) { numBuckets = numBuckets + fpa.getNumBuckets(); } return numBuckets; } return pr.getTotalNumberOfBuckets(); }
@Override public void memberDeparted(DistributionManager distributionManager, final InternalDistributedMember id, final boolean crashed) { try { DistributedMember dmem = prRegion.getSystem().getDistributedMember(); if (logger.isDebugEnabled()) { logger.debug( "MembershipListener invoked on DistributedMember = {} for failed memberId = {}", dmem, id); } if (!prRegion.isCacheClosing() && !prRegion.isDestroyed() && !dmem.equals(id)) { Runnable postRecoveryTask = null; // Only schedule redundancy recovery if this not a fixed PR. if (!PRHARedundancyProvider.this.prRegion.isFixedPartitionedRegion()) { postRecoveryTask = new Runnable() { @Override public void run() { // After the metadata has been cleaned, recover redundancy. scheduleRedundancyRecovery(id); } }; } // Schedule clean up the metadata for the failed member. PartitionedRegionHelper.cleanUpMetaDataForRegion(prRegion.getCache(), prRegion.getRegionIdentifier(), id, postRecoveryTask); } } catch (CancelException e) { // ignore } }
@Override public boolean hasNext() { if (getPartitionedRegion().isFixedPartitionedRegion()) { if (this.currentItem + 1 < BucketSet.this.pbrs.length) { int possibleBucketId = this.currentItem; boolean bucketExists = false; List<FixedPartitionAttributesImpl> fpaList = adviseAllFixedPartitionAttributes(); List<FixedPartitionAttributesImpl> localFpas = getPartitionedRegion().getFixedPartitionAttributesImpl(); if (localFpas != null) { fpaList.addAll(localFpas); } while (++possibleBucketId < BucketSet.this.pbrs.length && !bucketExists) { for (FixedPartitionAttributesImpl fpa : fpaList) { if (fpa.hasBucket(possibleBucketId)) { bucketExists = true; break; } } } return bucketExists; } else { return false; } } else { return this.currentItem + 1 < BucketSet.this.pbrs.length; } }
InternalDistributedMember ret; InternalDistributedMember primaryForFixedPartition = null; if (this.prRegion.isFixedPartitionedRegion()) { primaryForFixedPartition = this.prRegion.getRegionAdvisor().adviseFixedPrimaryPartitionDataStore(bucketId);
return Integer.valueOf(this.currentItem); } else { if (getPartitionedRegion().isFixedPartitionedRegion()) { boolean bucketExists = false; List<FixedPartitionAttributesImpl> fpaList = adviseAllFixedPartitionAttributes();
try { final boolean isFixedPartitionedRegion = PRHARedundancyProvider.this.prRegion.isFixedPartitionedRegion();
DistributedMember destination, float percentage) { PartitionedRegion pr = isPartitionedCheck(region); if (pr.isFixedPartitionedRegion()) { throw new IllegalStateException("Cannot move data in a fixed partitioned region");
@Property public void shouldReturnCorrectPartitionForGetHashKey( @Size(min = 1, max = 5) List<@InRange(minInt = 1, maxInt = 20) Integer> partitionSizes, @InRange(minInt = 0, maxInt = 50) int bucketId) { BucketTargetingFixedResolver resolver = new BucketTargetingFixedResolver(); ConcurrentMap<String, Integer[]> fakePartitions = new ConcurrentHashMap<>(); int startingBucket = 0; for (int i = 0; i < partitionSizes.size(); i++) { fakePartitions.put("p" + i, new Integer[] {startingBucket, partitionSizes.get(i)}); startingBucket += partitionSizes.get(i); } assumeTrue(bucketId < startingBucket); final PartitionedRegion region = mock(PartitionedRegion.class); when(region.getPartitionsMap()).thenReturn(fakePartitions); when(region.isFixedPartitionedRegion()).thenReturn(true); when(region.getPartitionResolver()).thenReturn(resolver); assertEquals(bucketId, PartitionedRegionHelper.getHashKey(region, Operation.CREATE, "key", "value", bucketId)); }
if (pr.isFixedPartitionedRegion()) { String partition = null; if (resolver instanceof FixedPartitionResolver) {
private void assignStartingBucketAdvisorIfFixedPartitioned() { if (startingBucketAdvisor != null) { // already assigned return; } if (this.pRegion.isFixedPartitionedRegion()) { List<FixedPartitionAttributesImpl> fpas = this.pRegion.getFixedPartitionAttributesImpl(); if (fpas != null) { int bucketId = getBucket().getId(); for (FixedPartitionAttributesImpl fpa : fpas) { if (fpa.hasBucket(bucketId) && bucketId != fpa.getStartingBucketID()) { startingBucketAdvisor = this.regionAdvisor.getBucketAdvisor(fpa.getStartingBucketID()); break; } } } } }
if (region.isFixedPartitionedRegion()) { if (Boolean.getBoolean( DistributionConfig.GEMFIRE_PREFIX + "DISABLE_MOVE_PRIMARIES_ON_STARTUP")) {
DistributedMember destination, K key) { PartitionedRegion pr = isPartitionedCheck(region); if (pr.isFixedPartitionedRegion()) { throw new IllegalStateException("Cannot move data in a fixed partitioned region");
public void resetParentAdvisor(int bucketId) { PartitionedRegion colocatedRegion = ColocationHelper.getColocatedRegion(this.pRegion); if (colocatedRegion != null) { if (colocatedRegion.isFixedPartitionedRegion()) { List<FixedPartitionAttributesImpl> fpas = colocatedRegion.getFixedPartitionAttributesImpl(); if (fpas != null) { for (FixedPartitionAttributesImpl fpa : fpas) { if (fpa.hasBucket(bucketId)) { this.parentAdvisor = colocatedRegion.getRegionAdvisor().getBucketAdvisor(fpa.getStartingBucketID()); break; } } } } else { this.parentAdvisor = colocatedRegion.getRegionAdvisor().getBucketAdvisor(bucketId); } } else { this.parentAdvisor = null; } }
boolean acquired = childBA.acquiredPrimaryLock(); acquireForChild = true; if (acquired && this.pRegion.isFixedPartitionedRegion()) { childBA.acquirePrimaryForRestOfTheBucket();
public void setHosting(boolean value) { if (value) { PartitionedRegion region = this.getPartitionedRegion(); Assert.assertTrue(this.realBucket != null); Assert.assertTrue(!this.advisor.isHosting()); if (region.isFixedPartitionedRegion()) { List<FixedPartitionAttributesImpl> list = region.getFixedPartitionAttributesImpl(); if (list != null) { for (FixedPartitionAttributesImpl info : list) { if (info.hasBucket(bid)) { this.advisor.setHosting(true); break; } } } } else { // normal PR this.advisor.setHosting(true); } } else { // Assert.assertTrue(!getPartitionedRegion().getDataStore().isManagingBucket(this.bid)); this.advisor.setHosting(false); this.realBucket = null; } }
if (this.pRegion.isFixedPartitionedRegion()) { InternalDistributedMember primaryMember = this.regionAdvisor.adviseFixedPrimaryPartitionDataStore(this.getBucket().getId()); if (this.pRegion.isFixedPartitionedRegion()) { deposeOtherPrimaryBucketForFixedPartition();
if (this.isFixedPartitionedRegion()) { FixedPartitionAttributesImpl fpa = PartitionedRegionHelper.getFixedPartitionAttributesForBucket(this, bucketId);
if (r.isFixedPartitionedRegion()) { FixedPartitionAttributesImpl fpa = PartitionedRegionHelper.getFixedPartitionAttributesForBucket(r, bucketId);