public RegionStatus(PartitionedRegion region) { this.thisMember = createPersistentMemberID(region); this.region = region.getFullPath(); this.bucketRegions = region.getRegionAdvisor().getProxyBucketArray(); }
private boolean isColocationComplete(int bucketId) { if(!ColocationHelper.isColocationComplete(this.partitionedRegion)) { ProxyBucketRegion pb = this.partitionedRegion.getRegionAdvisor().getProxyBucketArray()[bucketId]; BucketPersistenceAdvisor persistenceAdvisor = pb.getPersistenceAdvisor(); //Don't worry about colocation if we're recovering a persistent //bucket. The bucket must have been properly colocated earlier. if(persistenceAdvisor != null && persistenceAdvisor.wasHosting()) { return true; } if (logger.isDebugEnabled()) { logger.debug("Colocation is incomplete"); } return false; } return true; }
public RegionStatus(PartitionedRegion region) { this.thisMember = createPersistentMemberID(region); this.region = region.getFullPath(); this.bucketRegions = region.getRegionAdvisor().getProxyBucketArray(); }
/** * Retrieve the set of members which are currently offline * for all buckets. */ public OfflineMemberDetailsImpl fetchOfflineMembers() { ProxyBucketRegion[] proxyBuckets = prRegion.getRegionAdvisor().getProxyBucketArray(); Set<PersistentMemberID>[] offlineMembers = new Set[proxyBuckets.length]; for(int i =0; i < proxyBuckets.length; i++) { ProxyBucketRegion proxy = proxyBuckets[i]; if(this.prRegion.getDataPolicy().withPersistence()) { Set<PersistentMemberID> persistedMembers = proxy.getPersistenceAdvisor().getMissingMembers(); if(persistedMembers == null) { persistedMembers = Collections.emptySet(); } offlineMembers[i] = persistedMembers; } else { offlineMembers[i] = Collections.emptySet(); } } return new OfflineMemberDetailsImpl(offlineMembers); }
/** * Retrieve the set of members which are currently offline * for all buckets. */ public OfflineMemberDetailsImpl fetchOfflineMembers() { ProxyBucketRegion[] proxyBuckets = prRegion.getRegionAdvisor().getProxyBucketArray(); Set<PersistentMemberID>[] offlineMembers = new Set[proxyBuckets.length]; for(int i =0; i < proxyBuckets.length; i++) { ProxyBucketRegion proxy = proxyBuckets[i]; if(this.prRegion.getDataPolicy().withPersistence()) { Set<PersistentMemberID> persistedMembers = proxy.getPersistenceAdvisor().getMissingMembers(); if(persistedMembers == null) { persistedMembers = Collections.emptySet(); } offlineMembers[i] = persistedMembers; } else { offlineMembers[i] = Collections.emptySet(); } } return new OfflineMemberDetailsImpl(offlineMembers); }
private BucketPersistenceAdvisor getColocatedPersistenceAdvisor() { PartitionedRegion colocatedRegion = ColocationHelper .getColocatedRegion(proxyBucket.getPartitionedRegion()); if(colocatedRegion == null) { return null; } ProxyBucketRegion colocatedProxyBucket = colocatedRegion.getRegionAdvisor() .getProxyBucketArray()[proxyBucket.getBucketId()]; return colocatedProxyBucket.getPersistenceAdvisor(); }
private BucketPersistenceAdvisor getColocatedPersistenceAdvisor() { PartitionedRegion colocatedRegion = ColocationHelper .getColocatedRegion(proxyBucket.getPartitionedRegion()); if(colocatedRegion == null) { return null; } ProxyBucketRegion colocatedProxyBucket = colocatedRegion.getRegionAdvisor() .getProxyBucketArray()[proxyBucket.getBucketId()]; return colocatedProxyBucket.getPersistenceAdvisor(); } }
public Object call() throws Exception { Cache cache = getCache(); PartitionedRegion region = (PartitionedRegion) cache.getRegion(PR_REGION_NAME); return region.getRegionAdvisor().getProxyBucketArray()[bucketId] .getPersistenceAdvisor().getPersistedOnlineOrEqualMembers(); } };
public static final BucketRegion getBucketRegion(PartitionedRegion pr, int bucketId) throws BucketMovedException { // need BucketRegion only if overflow to get value final ProxyBucketRegion pbr = pr.getRegionAdvisor().getProxyBucketArray()[bucketId]; final BucketRegion br = pbr.getCreatedBucketRegion(); if (br != null) { return br; } else { throw new BucketMovedException( LocalizedStrings.FunctionService_BUCKET_MIGRATED_TO_ANOTHER_NODE .toLocalizedString(), bucketId, pr.getFullPath()); } }
public static final BucketRegion getBucketRegion(PartitionedRegion pr, int bucketId) throws BucketMovedException { // need BucketRegion only if overflow to get value final ProxyBucketRegion pbr = pr.getRegionAdvisor().getProxyBucketArray()[bucketId]; final BucketRegion br = pbr.getCreatedBucketRegion(); if (br != null) { return br; } else { throw new BucketMovedException( LocalizedStrings.FunctionService_BUCKET_MIGRATED_TO_ANOTHER_NODE .toLocalizedString(), bucketId, pr.getFullPath()); } }
public void initializePersistenceAdvisor() { persistenceAdvisor.initialize(); List<PartitionedRegion> colocatedWithList = ColocationHelper.getColocatedChildRegions(partitionedRegion); for(PartitionedRegion childPR : colocatedWithList) { ProxyBucketRegion[] childBucketArray = childPR.getRegionAdvisor().getProxyBucketArray(); if(childBucketArray != null) { ProxyBucketRegion childBucket = childBucketArray[getBucketId()]; if(childBucket.persistenceAdvisor != null) { childBucket.persistenceAdvisor.initialize(); } } } }
public static final BucketRegion getBucketRegion(PartitionedRegion pr, int bucketId) throws BucketMovedException { // need BucketRegion only if overflow to get value final ProxyBucketRegion pbr = pr.getRegionAdvisor().getProxyBucketArray()[bucketId]; final BucketRegion br = pbr.getCreatedBucketRegion(); if (br != null) { return br; } else { throw new BucketMovedException( LocalizedStrings.FunctionService_BUCKET_MIGRATED_TO_ANOTHER_NODE .toLocalizedString(), bucketId, pr.getFullPath()); } }
public void initializePersistenceAdvisor() { persistenceAdvisor.initialize(); List<PartitionedRegion> colocatedWithList = ColocationHelper.getColocatedChildRegions(partitionedRegion); for(PartitionedRegion childPR : colocatedWithList) { ProxyBucketRegion[] childBucketArray = childPR.getRegionAdvisor().getProxyBucketArray(); if(childBucketArray != null) { ProxyBucketRegion childBucket = childBucketArray[getBucketId()]; if(childBucket.persistenceAdvisor != null) { childBucket.persistenceAdvisor.initialize(); } } } }
public Object call() throws Exception { Cache cache = getCache(); PartitionedRegion region = (PartitionedRegion) cache.getRegion(PR_REGION_NAME); return region.getRegionAdvisor().getProxyBucketArray()[bucketId] .getPersistenceAdvisor().getMembershipView().getOfflineMembers(); } };
private void addAffectedRegionForSnapshotIsolation(PutAllPRMessage prMsg, int bucketId) { if (prMsg.getTXState() != null && prMsg.getLockingPolicy() == LockingPolicy.SNAPSHOT) { final RegionAdvisor ra = getRegionAdvisor(); ProxyBucketRegion pbr = ra.getProxyBucketArray()[bucketId]; prMsg.getTXState().getProxy().addAffectedRegion(pbr); } }
private boolean isColocationComplete(int bucketId) { if(!ColocationHelper.isColocationComplete(this.partitionedRegion)) { ProxyBucketRegion pb = this.partitionedRegion.getRegionAdvisor().getProxyBucketArray()[bucketId]; BucketPersistenceAdvisor persistenceAdvisor = pb.getPersistenceAdvisor(); //Don't worry about colocation if we're recovering a persistent //bucket. The bucket must have been properly colocated earlier. if(persistenceAdvisor != null && persistenceAdvisor.wasHosting()) { return true; } if(logger.fineEnabled()) { logger.fine("Colocation is incomplete"); } return false; } return true; }
public static ProxyBucketRegion getProxyBucketRegion( final PartitionedRegion pr, final EntryEventImpl event) { int bucketId = event.getBucketId(); if (bucketId == KeyInfo.UNKNOWN_BUCKET) { bucketId = PartitionedRegionHelper.getHashKey(pr, event.getOperation(), event.getKey(), event.getValue(), event.getCallbackArgument()); event.setBucketId(bucketId); } final RegionAdvisor ra = pr.getRegionAdvisor(); return ra.getProxyBucketArray()[bucketId]; }
public void recoverFromDiskRecursively() { recoverFromDisk(); List<PartitionedRegion> colocatedWithList = ColocationHelper.getColocatedChildRegions(partitionedRegion); for(PartitionedRegion childPR : colocatedWithList) { if(childPR.getDataPolicy().withPersistence()) { ProxyBucketRegion[] childBucketArray = childPR.getRegionAdvisor().getProxyBucketArray(); if(childBucketArray != null) { ProxyBucketRegion childBucket = childBucketArray[getBucketId()]; childBucket.recoverFromDisk(); } } } }
public void recoverFromDiskRecursively() { recoverFromDisk(); List<PartitionedRegion> colocatedWithList = ColocationHelper.getColocatedChildRegions(partitionedRegion); for(PartitionedRegion childPR : colocatedWithList) { if(childPR.getDataPolicy().withPersistence()) { ProxyBucketRegion[] childBucketArray = childPR.getRegionAdvisor().getProxyBucketArray(); if(childBucketArray != null) { ProxyBucketRegion childBucket = childBucketArray[getBucketId()]; childBucket.recoverFromDisk(); } } } }
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; }