public final boolean containsKey(Object key) { RegionEntry re = getEntry(key); if (re == null) { return false; } if (re.isRemoved()) { return false; } return true; }
public boolean isTombstoneNotNeeded(RegionEntry re, int destroyedVersion) { // no need for synchronization - stale values are okay here // GFXD can return RegionEntry itself in getKey() call that fails when sent // to HDFS due to serialization attempt (#49887) RegionEntry actualRe = getEntry( getEntryNeedKeyCopy() ? re.getKeyCopy() : re.getKey()); // TODO this looks like a problem for regionEntry pooling if (actualRe != re) { // null actualRe is okay here return true; // tombstone was evicted at some point } int entryVersion = re.getVersionStamp().getEntryVersion(); boolean isSameTombstone = (entryVersion == destroyedVersion && re.isTombstone()); return !isSameTombstone; }
RegionEntry retVal = null; if (event.isFetchFromHDFS()) { retVal = getEntry(event); } else { retVal = getEntryInVM(key);
public final boolean containsKey(Object key) { RegionEntry re = getEntry(key); if (re == null) { return false; } if (re.isRemoved()) { return false; } return true; }
RegionEntry retVal = null; if (event.isFetchFromHDFS()) { retVal = getEntry(event); } else { retVal = getEntryInVM(key);
protected RegionEntry getEntry(EntryEventImpl event) { return getEntry(event.getKey()); }
protected RegionEntry getEntry(EntryEventImpl event) { return getEntry(event.getKey()); }
public final boolean isListOfDeltas(Object key) { RegionEntry re = getEntry(key); if(re != null) { LocalRegion owner = _getOwner(); return reHasDelta(owner, re); } return false; }
public boolean isTombstoneNotNeeded(RegionEntry re, int destroyedVersion) { // no need for synchronization - stale values are okay here RegionEntry actualRe = getEntry(re.getKey()); // TODO this looks like a problem for regionEntry pooling if (actualRe != re) { // null actualRe is okay here return true; // tombstone was evicted at some point } VersionStamp vs = re.getVersionStamp(); if (vs == null) { // if we have no VersionStamp why were we even added as a tombstone? // We used to see an NPE here. See bug 52092. logger.error("Unexpected RegionEntry scheduled as tombstone: re.getClass {} destroyedVersion {}", re.getClass(), destroyedVersion); return true; } int entryVersion = vs.getEntryVersion(); boolean isSameTombstone = (entryVersion == destroyedVersion && re.isTombstone()); return !isSameTombstone; }
public final void removeIfDelta(Object key) { RegionEntry re = getEntry(key); if (re != null) { LocalRegion owner = _getOwner(); if (reHasDelta(owner, re)) { synchronized (re) { re.removePhase2(owner); removeEntry(key, re, true); } } } }
public final void writeSyncIfPresent(Object key, Runnable runner) { RegionEntry re = getEntry(key); if (re != null) { final boolean disabled = disableLruUpdateCallback(); try { synchronized (re) { if (!re.isRemoved()) { runner.run(); } } } finally { if (disabled) { enableLruUpdateCallback(); } try { lruUpdateCallback(); }catch(DiskAccessException dae) { this._getOwner().handleDiskAccessException(dae, true/* stop bridge servers*/); throw dae; } } } }
public final void writeSyncIfPresent(Object key, Runnable runner) { RegionEntry re = getEntry(key); if (re != null) { final boolean disabled = disableLruUpdateCallback(); try { synchronized (re) { if (!re.isRemoved()) { runner.run(); } } } finally { if (disabled) { enableLruUpdateCallback(); } try { lruUpdateCallback(); }catch(DiskAccessException dae) { this._getOwner().handleDiskAccessException(dae); throw dae; } } } }
public final void removeIfDestroyed(Object key) { LocalRegion owner = _getOwner(); // boolean makeTombstones = owner.concurrencyChecksEnabled; DiskRegion dr = owner.getDiskRegion(); RegionEntry re = getEntry(key); if (re != null) { if (re.isDestroyed()) { synchronized (re) { if (re.isDestroyed()) { // [bruce] destroyed entries aren't in the LRU clock, so they can't be retained here // if (makeTombstones) { // re.makeTombstone(owner, re.getVersionStamp().asVersionTag()); // } else { re.removePhase2(); removeEntry(key, re, true); } } } } // } }
public final void removeIfDestroyed(Object key) { LocalRegion owner = _getOwner(); // boolean makeTombstones = owner.concurrencyChecksEnabled; DiskRegion dr = owner.getDiskRegion(); RegionEntry re = getEntry(key); if (re != null) { if (re.isDestroyed()) { synchronized (re) { if (re.isDestroyed()) { // [bruce] destroyed entries aren't in the LRU clock, so they can't be retained here // if (makeTombstones) { // re.makeTombstone(owner, re.getVersionStamp().asVersionTag()); // } else { re.removePhase2(owner); removeEntry(key, re, true); } } } } // } }
/** * This code may not be correct. It was added quickly to help customer's PR persistence to * not consume as much memory. */ public void evictValue(Object key) { final LocalRegion owner = _getOwner(); RegionEntry re = getEntry(key); if (re != null) { synchronized (re) { if (!re.isValueNull()) { re.setValueToNull(owner); owner.getDiskRegion().incNumEntriesInVM(-1L); owner.getDiskRegion().incNumOverflowOnDisk(1L); if(owner instanceof BucketRegion) { ((BucketRegion)owner).incNumEntriesInVM(-1L); ((BucketRegion)owner).incNumOverflowOnDisk(1L); } } } } }
/** * This code needs to be evaluated. It was added quickly to help PR persistence * not to consume as much memory. */ public void evictValue(Object key) { final LocalRegion owner = _getOwner(); RegionEntry re = getEntry(key); if (re != null) { synchronized (re) { if (!re.isValueNull()) { re.setValueToNull(); owner.getDiskRegion().incNumEntriesInVM(-1L); owner.getDiskRegion().incNumOverflowOnDisk(1L); if(owner instanceof BucketRegion) { ((BucketRegion)owner).incNumEntriesInVM(-1L); ((BucketRegion)owner).incNumOverflowOnDisk(1L); } } } } }
RegionEntry re = getEntry(event.getKey());
boolean needsCallback = false; if (re == null) { re = getEntry(key);
public final RegionEntry updateRecoveredEntry(Object key, DiskEntry.RecoveredEntry value) { boolean needsCallback = false; RegionEntry re = getEntry(key); if (re == null) { return null;
RegionEntry re = getEntry(event.getKey());