static void validateRegionAttributes(RegionAttributes attrs) { if (!attrs.getDataPolicy().withPartitioning()) { // replicated region throw new UnsupportedOperationException( "Lucene indexes on replicated regions are not supported"); } // For now we cannot support eviction with local destroy. // Eviction with overflow to disk still needs to be supported EvictionAttributes evictionAttributes = attrs.getEvictionAttributes(); EvictionAlgorithm evictionAlgorithm = evictionAttributes.getAlgorithm(); if (evictionAlgorithm != EvictionAlgorithm.NONE && evictionAttributes.getAction().isLocalDestroy()) { throw new UnsupportedOperationException( "Lucene indexes on regions with eviction and action local destroy are not supported"); } }
public int getSizeForEviction() { EvictionAttributes ea = this.getAttributes().getEvictionAttributes(); if (ea == null) return 0; EvictionAlgorithm algo = ea.getAlgorithm(); if (!algo.isLRUHeap()) return 0; EvictionAction action = ea.getAction(); int size = action.isLocalDestroy() ? this.getRegionMap().sizeInVM() : (int) this.getNumEntriesInVM(); return size; }
if (ea.getAction().isLocalDestroy()) {
if (attrs.getEvictionAttributes().getAction().isLocalDestroy()) { throw new IllegalStateException( "An Eviction Controller with local destroy eviction action is incompatible with distributed replication");
EvictionAction action = getEvictionController().getEvictionAction(); LocalRegion region = _getOwner(); if (action.isLocalDestroy()) { int size = entry.getEntrySize(); if (region.evictDestroy(entry)) {
if (getEvictionAttributes().getAction().isLocalDestroy() || getEntryIdleTimeout().getAction().isLocal() || getEntryTimeToLive().getAction().isLocal()
RegionAttributesImpl<?, ?> rattr = attrs; if (!attrs.isForBucketRegion()) { if (attrs.getEvictionAttributes().getAction().isLocalDestroy() || attrs.getEntryIdleTimeout().getAction().isLocal() || attrs.getEntryTimeToLive().getAction().isLocal()