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 int areAllBucketsHosted(final Set<Integer> bucketSet, boolean optimizeForWrite) { // 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 (int bucket : bucketSet) { if (optimizeForWrite) { if (!this.partitionedRegion.getRegionAdvisor().getBucketAdvisor(bucket) .isPrimary()) { return bucket; } } else { if (!this.partitionedRegion.getRegionAdvisor().getBucketAdvisor(bucket) .isHosting()) { return bucket; } } } return -1; }
public void run() { PartitionedRegion pr = (PartitionedRegion) getCache().getRegion(regionPath[0]); BucketAdvisor advisor = pr.getRegionAdvisor().getBucketAdvisor(0); assertEquals(members[finalOtherVM], advisor.getPrimary()); } });
public ConcurrentHashMap<Integer, Set<ServerBucketProfile>> getAllClientBucketProfilesTest() { ConcurrentHashMap<Integer, Set<ServerBucketProfile>> map = new ConcurrentHashMap<Integer, Set<ServerBucketProfile>>(); Map<Integer, List<BucketServerLocation66>> testMap = this.getAllClientBucketProfiles(); for (Integer bucketId : testMap.keySet()) { Set<ServerBucketProfile> parr = this.clientBucketProfilesMap.get(bucketId); map.put(bucketId, parr); } if (getPartitionedRegion().isDataStore()) { for (Integer bucketId : getPartitionedRegion().getDataStore().getAllLocalBucketIds()) { BucketProfile profile = getBucketAdvisor(bucketId).getLocalProfile(); if ((profile instanceof ServerBucketProfile) && profile.isHosting) { map.get(bucketId).add((ServerBucketProfile)profile); } } } if (logger.isDebugEnabled()) { logger.debug("This maps is sksk {} and size is {}", map, map.keySet().size()); } return map; }
/** * * @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; }
/** * * @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; }
/** * * @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; }
public ConcurrentHashMap<Integer, Set<ServerBucketProfile>> getAllClientBucketProfilesTest() { ConcurrentHashMap<Integer, Set<ServerBucketProfile>> map = new ConcurrentHashMap<Integer, Set<ServerBucketProfile>>(); Map<Integer, List<BucketServerLocation66>> testMap = this.getAllClientBucketProfiles(); for (Integer bucketId : testMap.keySet()) { Set<ServerBucketProfile> parr = this.clientBucketProfilesMap.get(bucketId); map.put(bucketId, parr); } if (getPartitionedRegion().isDataStore()) { for (Integer bucketId : getPartitionedRegion().getDataStore().getAllLocalBucketIds()) { BucketProfile profile = getBucketAdvisor(bucketId).getLocalProfile(); if ((profile instanceof ServerBucketProfile) && profile.isHosting) { map.get(bucketId).add((ServerBucketProfile)profile); } } } if (getLogWriter().fineEnabled()) { getLogWriter().fine("This maps is sksk " + map + " and size is " + map.keySet().size()); } return map; }
protected void createMissingBuckets(PartitionedRegion region) { PartitionedRegion parentRegion = ColocationHelper.getColocatedRegion(region); if(parentRegion == null) { return; } // Fix for 48954 - Make sure the parent region has created missing buckets // before we create missing buckets for this child region. createMissingBuckets(parentRegion); for (int i = 0; i < region .getTotalNumberOfBuckets(); i++) { if(parentRegion.getRegionAdvisor().getBucketAdvisor(i) .getBucketRedundancy() != region.getRegionAdvisor().getBucketAdvisor(i).getBucketRedundancy()){ /*if (leaderRegion.getRegionAdvisor().isStorageAssignedForBucket(i)) {*/ final long startTime = PartitionedRegionStats.startTime(); region.getRedundancyProvider().createBucketAtomically(i, 0, startTime, true, null); } } } }
protected void createMissingBuckets(PartitionedRegion region) { PartitionedRegion parentRegion = ColocationHelper.getColocatedRegion(region); if(parentRegion == null) { return; } // Fix for 48954 - Make sure the parent region has created missing buckets // before we create missing buckets for this child region. createMissingBuckets(parentRegion); for (int i = 0; i < region .getTotalNumberOfBuckets(); i++) { if(parentRegion.getRegionAdvisor().getBucketAdvisor(i) .getBucketRedundancy() != region.getRegionAdvisor().getBucketAdvisor(i).getBucketRedundancy()){ /*if (leaderRegion.getRegionAdvisor().isStorageAssignedForBucket(i)) {*/ final long startTime = PartitionedRegionStats.startTime(); region.getRedundancyProvider().createBucketAtomically(i, 0, startTime, true, null); } } } }
public Object call() { PartitionedRegion pr = (PartitionedRegion) getCache().getRegion(regionPath[0]); InternalDistributedMember primaryMember = pr.getRegionAdvisor().getBucketAdvisor(0).getPrimary(); DeposePrimaryBucketResponse response = DeposePrimaryBucketMessage.send(primaryMember, pr, 0); if (response != null) { response.waitForRepliesUninterruptibly(); return true; } else { return Boolean.FALSE; } } })).booleanValue();
@Override protected final boolean operateOnPartitionedRegion(DistributionManager dm, PartitionedRegion region, long startTime) throws ForceReattemptException { BucketAdvisor bucketAdvisor = region.getRegionAdvisor().getBucketAdvisor(this.bucketId); bucketAdvisor.deposePrimary(); region.getPrStats().endPartitionMessagesProcessing(startTime); DeposePrimaryBucketReplyMessage.send( getSender(), getProcessorId(), dm, (ReplyException)null); return false; }
@Override protected final boolean operateOnPartitionedRegion(DistributionManager dm, PartitionedRegion region, long startTime) throws ForceReattemptException { BucketAdvisor bucketAdvisor = region.getRegionAdvisor().getBucketAdvisor(this.bucketId); bucketAdvisor.deposePrimary(); region.getPrStats().endPartitionMessagesProcessing(startTime); DeposePrimaryBucketReplyMessage.send( getSender(), getProcessorId(), dm, (ReplyException)null); return false; }
private void assignStartingBucketAdvisor() { 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; } } } } }
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; }
private void assignStartingBucketAdvisor() { 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; } } } } }
@Override protected final boolean operateOnPartitionedRegion(DistributionManager dm, PartitionedRegion region, long startTime) throws ForceReattemptException { // this is executing in the WAITING_POOL_EXECUTOR byte responseCode = BecomePrimaryBucketReplyMessage.NOT_SECONDARY; BucketAdvisor bucketAdvisor = region.getRegionAdvisor().getBucketAdvisor(this.bucketId); if (bucketAdvisor.isHosting()) { if (bucketAdvisor.becomePrimary(this.isRebalance)) { // sends a request/reply message responseCode = BecomePrimaryBucketReplyMessage.OK; } } region.getPrStats().endPartitionMessagesProcessing(startTime); BecomePrimaryBucketReplyMessage.send( getSender(), getProcessorId(), dm, null, responseCode); return false; }
@Override protected final boolean operateOnPartitionedRegion(DistributionManager dm, PartitionedRegion region, long startTime) throws ForceReattemptException { // this is executing in the WAITING_POOL_EXECUTOR byte responseCode = BecomePrimaryBucketReplyMessage.NOT_SECONDARY; BucketAdvisor bucketAdvisor = region.getRegionAdvisor().getBucketAdvisor(this.bucketId); if (bucketAdvisor.isHosting()) { if (bucketAdvisor.becomePrimary(this.isRebalance)) { // sends a request/reply message responseCode = BecomePrimaryBucketReplyMessage.OK; } } region.getPrStats().endPartitionMessagesProcessing(startTime); BecomePrimaryBucketReplyMessage.send( getSender(), getProcessorId(), dm, null, responseCode); return false; }
@Override public final void checkAllBucketsHosted() throws BucketMovedException { // check if bucket has moved if (this.pr != null) { final BucketAdvisor bucAdvisor = this.pr.getRegionAdvisor() .getBucketAdvisor(this.bucketId); if (optimizeForWrite()) { if (!bucAdvisor.isPrimary()) { this.pr.checkReadiness(); InternalDistributedMember primaryHolder = bucAdvisor .basicGetPrimaryMember(); throw new PrimaryBucketException("Bucket " + this.pr.getBucketName(this.bucketId) + " is not primary. Current primary holder is " + primaryHolder); } } else if (!bucAdvisor.isHosting()) { throw new BucketMovedException( LocalizedStrings.FunctionService_BUCKET_MIGRATED_TO_ANOTHER_NODE .toLocalizedString(), this.bucketId, this.pr.getFullPath()); } } }
@Override public final void checkAllBucketsHosted() throws BucketMovedException { // check if bucket has moved if (this.pr != null) { final BucketAdvisor bucAdvisor = this.pr.getRegionAdvisor() .getBucketAdvisor(this.bucketId); if (optimizeForWrite()) { if (!bucAdvisor.isPrimary()) { this.pr.checkReadiness(); InternalDistributedMember primaryHolder = bucAdvisor .basicGetPrimaryMember(); throw new PrimaryBucketException("Bucket " + this.pr.getBucketName(this.bucketId) + " is not primary. Current primary holder is " + primaryHolder); } } else if (!bucAdvisor.isHosting()) { throw new BucketMovedException( LocalizedStrings.FunctionService_BUCKET_MIGRATED_TO_ANOTHER_NODE .toLocalizedString(), this.bucketId, this.pr.getFullPath()); } } }