@Override public String toString() { return new StringBuilder().append("BucketRegion").append("[path='").append(getFullPath()) .append(";serial=").append(getSerialNumber()).append(";primary=") .append(getBucketAdvisor().getProxyBucketRegion().isPrimary()).append("]").toString(); }
@Override public Set getBucketOwners() { return getBucketAdvisor().getProxyBucketRegion().getBucketOwners(); }
@Override public int getId() { return getBucketAdvisor().getProxyBucketRegion().getId(); }
@Override protected boolean isMemoryThresholdReachedForLoad() { return getBucketAdvisor().getProxyBucketRegion().isBucketSick(); }
@Override protected void setInternalRegionArguments(InternalRegionArguments ira) { // PR specific PartitionedRegion pr = mock(PartitionedRegion.class); BucketAdvisor ba = mock(BucketAdvisor.class); ReadWriteLock primaryMoveLock = new ReentrantReadWriteLock(); Lock primaryMoveReadLock = primaryMoveLock.readLock(); when(ba.getPrimaryMoveReadLock()).thenReturn(primaryMoveReadLock); when(ba.getProxyBucketRegion()).thenReturn(mock(ProxyBucketRegion.class)); when(ba.isPrimary()).thenReturn(true); ira.setPartitionedRegion(pr).setPartitionedRegionBucketRedundancy(1).setBucketAdvisor(ba); }
return true; getProxyBucketRegion().getPartitionedRegion().checkReadiness(); if (isClosed()) { return false;
public boolean waitForStorage() { synchronized (this) { // let's park this thread and wait for storage! StopWatch timer = new StopWatch(true); try { for (;;) { if (this.regionAdvisor.isBucketLocal(getBucket().getId())) { return true; } getProxyBucketRegion().getPartitionedRegion().checkReadiness(); if (isClosed()) { return false; } long timeLeft = BUCKET_STORAGE_WAIT - timer.elapsedTimeMillis(); if (timeLeft <= 0) { return false; } if (logger.isDebugEnabled()) { logger.debug("Waiting for bucket storage" + this); } this.wait(timeLeft); // spurious wakeup ok } } catch (InterruptedException e) { // abort and return null Thread.currentThread().interrupt(); } return false; } }
@Override public void initialize(InputStream snapshotInputStream, InternalDistributedMember imageTarget, InternalRegionArguments internalRegionArgs) throws TimeoutException, IOException, ClassNotFoundException { // Set this region in the ProxyBucketRegion early so that profile exchange will // perform the correct fillInProfile method getBucketAdvisor().getProxyBucketRegion().setBucketRegion(this); boolean success = false; try { final InternalDistributedMember primaryHolder = getBucketAdvisor().basicGetPrimaryMember(); if (primaryHolder != null && !primaryHolder.equals(getMyId())) { // Ignore the provided image target, use an existing primary (if any) super.initialize(snapshotInputStream, primaryHolder, internalRegionArgs); } else { super.initialize(snapshotInputStream, imageTarget, internalRegionArgs); } success = true; } finally { if (!success) { removeFromPeersAdvisors(false); getBucketAdvisor().getProxyBucketRegion().clearBucketRegion(this); } } }
when(scope.isDistributedAck()).thenReturn(true); when(dataPolicy.withReplication()).thenReturn(true); when(bucketAdvisor.getProxyBucketRegion()).thenReturn(mock(ProxyBucketRegion.class)); when(event.getOperation()).thenReturn(operation); when(operation.isDistributed()).thenReturn(true);
@Override protected Profile instantiateProfile(InternalDistributedMember memberId, int version) { if (!this.pRegion.isShadowPR()) { InternalCache cache = getProxyBucketRegion().getCache(); List servers = null; servers = cache.getCacheServers(); HashSet<BucketServerLocation66> serverLocations = new HashSet<BucketServerLocation66>(); for (Object object : servers) { CacheServerImpl server = (CacheServerImpl) object; if (server.isRunning() && (server.getExternalAddress() != null)) { BucketServerLocation66 location = new BucketServerLocation66(getBucket().getId(), server.getPort(), server.getExternalAddress() /* .getExternalAddress(false/ checkServerRunning ) */, getBucket().isPrimary(), Integer.valueOf(version).byteValue(), server.getCombinedGroups()); serverLocations.add(location); } } if (serverLocations.size() > 0) { return new ServerBucketProfile(memberId, version, getBucket(), serverLocations); } } return new BucketProfile(memberId, version, getBucket()); }
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; }
bucketAdvisor.getProxyBucketRegion().removeBucket(); } finally { primaryMoveReadLock.unlock(); bucketRegion.preDestroyBucket(bucketId); bucketRegion.localDestroyRegion(); bucketAdvisor.getProxyBucketRegion().finishRemoveBucket(); if (logger.isDebugEnabled()) { logger.debug("Destroyed {}", bucketRegion);
buk.getBucketAdvisor().getProxyBucketRegion().setHosting(false); if (removeFromDisk) { buk.localDestroyRegion();
getProxyBucketRegion().getPartitionedRegion().checkReadiness(); if (isClosed()) { break;
when(ba.getProxyBucketRegion()).thenReturn(mock(ProxyBucketRegion.class));
.getServiceNamed(PartitionedRegionHelper.PARTITION_LOCK_SERVICE_NAME); if (dls == null) { if (!createDLS || getProxyBucketRegion().getCache().isClosed()) { return null; // cache closure has destroyed the DLS
final ProxyBucketRegion proxyBucketRegion = bucketAdvisor.getProxyBucketRegion(); BucketPersistenceAdvisor persistentAdvisor = proxyBucketRegion.getPersistenceAdvisor();