@Override public void visit(Integer bucketId, Region r) { BucketRegion br = (BucketRegion) r; if (br.getBucketAdvisor().isPrimary()) { numPrimaries.incrementAndGet(); } } });
public Set<BucketRegion> getAllLocalPrimaryBucketRegions() { Set<BucketRegion> retVal = new HashSet<BucketRegion>(); for (BucketRegion br : localBucket2RegionMap.values()) { if (br.getBucketAdvisor().isPrimary()) { retVal.add(br); } } return Collections.unmodifiableSet(retVal); }
public void doUnlockForPrimary() { Lock primaryMoveReadLock = getBucketAdvisor().getPrimaryMoveReadLock(); primaryMoveReadLock.unlock(); Lock parentLock = getBucketAdvisor().getParentPrimaryMoveReadLock(); if (parentLock != null) { parentLock.unlock(); } }
@Override protected boolean shouldDistributeInvalidateRegion(RegionEventImpl event) { return getBucketAdvisor().isPrimary(); }
@Override public boolean isHosting() { return getBucketAdvisor().isHosting(); }
@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(); }
public Set<Integer> getAllLocalPrimaryBucketIds() { Set<Integer> bucketIds = new HashSet<Integer>(); for (Map.Entry<Integer, BucketRegion> bucketEntry : getAllLocalBuckets()) { BucketRegion bucket = bucketEntry.getValue(); if (bucket.getBucketAdvisor().isPrimary()) { bucketIds.add(Integer.valueOf(bucket.getId())); } } return bucketIds; }
/** a fast estimate of total bucket size */ public long getEstimatedLocalBucketSize(boolean primaryOnly) { long size = 0; for (BucketRegion br : localBucket2RegionMap.values()) { if (!primaryOnly || br.getBucketAdvisor().isPrimary()) { size += br.getEstimatedLocalSize(); } } return size; }
@Override void expireInvalidate(EntryEventImpl event) { if (!getBucketAdvisor().isPrimary()) { return; } try { super.expireInvalidate(event); } catch (PrimaryBucketException e) { // must have concurrently removed the primary } }
@Override public Set getBucketOwners() { return getBucketAdvisor().getProxyBucketRegion().getBucketOwners(); }
/** * Fetch a BucketRegion, but do not return until it is initialized and the primary is known. * * @see #getInitializedBucketForId(Object, Integer) * @return the initialized region */ public BucketRegion getInitializedBucketWithKnownPrimaryForId(Object key, Integer bucketId) throws ForceReattemptException { final BucketRegion br = getInitializedBucketForId(key, bucketId); br.getBucketAdvisor().getPrimary();// waits until the primary is initialized return br; }
@Override public int getId() { return getBucketAdvisor().getProxyBucketRegion().getId(); }
@Override protected boolean isMemoryThresholdReachedForLoad() { return getBucketAdvisor().getProxyBucketRegion().isBucketSick(); }
public Set<Integer> getAllLocalPrimaryBucketIdsBetweenProvidedIds(int low, int high) { Set<Integer> bucketIds = new HashSet<Integer>(); for (Map.Entry<Integer, BucketRegion> bucketEntry : getAllLocalBuckets()) { BucketRegion bucket = bucketEntry.getValue(); if (bucket.getBucketAdvisor().isPrimary() && (bucket.getId() >= low) && (bucket.getId() < high)) { bucketIds.add(Integer.valueOf(bucket.getId())); } } return bucketIds; }
public void checkForPrimary() { final boolean isp = getBucketAdvisor().isPrimary(); if (!isp) { this.partitionedRegion.checkReadiness(); checkReadiness(); InternalDistributedMember primaryHolder = getBucketAdvisor().basicGetPrimaryMember(); throw new PrimaryBucketException( "Bucket " + getName() + " is not primary. Current primary holder is " + primaryHolder); } }
@Override void expireDestroy(EntryEventImpl event, boolean cacheWrite) { /* Early out before we throw a PrimaryBucketException because we're not primary */ if (needWriteLock(event) && !getBucketAdvisor().isPrimary()) { return; } try { super.expireDestroy(event, cacheWrite); return; } catch (PrimaryBucketException e) { // must have concurrently removed the primary return; } }
private void givenBucketRegion() { BucketRegion bucketRegion = mock(BucketRegion.class); when(bucketRegion.isUsedForPartitionedRegionBucket()).thenReturn(true); when(bucketRegion.getPartitionedRegion()).thenReturn(partitionedRegion); when(bucketRegion.getBucketAdvisor()).thenReturn(mock(BucketAdvisor.class)); owner = bucketRegion; setupLocalRegion(); regionMap = spy(new TestableAbstractRegionMap()); }
@Override public int getAsInt() { if (isClosed() || !((BucketRegion) userRegion).getBucketAdvisor().isPrimary()) { stats.removeDocumentsSupplier(this); return 0; } try { return writer.numDocs(); } catch (AlreadyClosedException e) { // ignore return 0; } } }
protected BucketRegion setUpMockBucket(int id) throws BucketNotFoundException { BucketRegion mockBucket = Mockito.mock(BucketRegion.class); BucketRegion fileAndChunkBucket = Mockito.mock(BucketRegion.class); // Allowing the fileAndChunkBucket to behave like a map so that the IndexWriter operations don't // fail Fakes.addMapBehavior(fileAndChunkBucket); when(fileAndChunkBucket.getFullPath()).thenReturn("File" + id); when(mockBucket.getId()).thenReturn(id); when(userRegion.getBucketRegion(eq(id), eq(null))).thenReturn(mockBucket); when(userDataStore.getLocalBucketById(eq(id))).thenReturn(mockBucket); when(userRegion.getBucketRegion(eq(id + 113), eq(null))).thenReturn(mockBucket); when(userDataStore.getLocalBucketById(eq(id + 113))).thenReturn(mockBucket); when(fileDataStore.getLocalBucketById(eq(id))).thenReturn(fileAndChunkBucket); fileAndChunkBuckets.put(id, fileAndChunkBucket); dataBuckets.put(id, mockBucket); BucketAdvisor mockBucketAdvisor = Mockito.mock(BucketAdvisor.class); when(fileAndChunkBucket.getBucketAdvisor()).thenReturn(mockBucketAdvisor); when(mockBucketAdvisor.isPrimary()).thenReturn(true); return mockBucket; } }
protected void distributeInvalidateOperation(EntryEventImpl event) { InvalidateOperation op = null; long token = -1; try { if (!event.isOriginRemote() && getBucketAdvisor().isPrimary()) { // This cache has processed the event, forward operation // and event messages to backup buckets // before distribute: BR.invalidate hasSeenEvent op = new InvalidateOperation(event); token = op.startOperation(); } event.invokeCallbacks(this, true, false); } finally { if (op != null) { op.endOperation(token); } } }