private void notifyIndex(RegionEntry re, boolean isUpdating) { if (_getOwner().indexMaintenanceSynchronous) { re.setUpdateInProgress(isUpdating); } }
public void dumpMap() { logger.debug("dump of concurrent map of size {} for region {}", this._getMap().size(), this._getOwner()); for (Iterator it = this._getMap().values().iterator(); it.hasNext(); ) { logger.trace("dumpMap:"+it.next().toString()); } }
protected final void incEntryCount(int delta) { LocalRegion lr = _getOwner(); if (lr != null) { CachePerfStats stats = lr.getCachePerfStats(); if (stats != null) { stats.incEntryCount(delta); } } }
public final boolean isListOfDeltas(Object key) { RegionEntry re = getEntry(key); if(re != null) { LocalRegion owner = _getOwner(); return reHasDelta(owner, re); } return false; }
protected final void incEntryCount(int delta) { LocalRegion lr = _getOwner(); if (lr != null) { CachePerfStats stats = lr.getCachePerfStats(); if (stats != null) { stats.incEntryCount(delta); } } }
@Override public void decTxRefCount(RegionEntry e) { LocalRegion lr = null; if (_isOwnerALocalRegion()) { lr = _getOwner(); } e.decRefCount(null, lr); }
protected void invalidateEntry(EntryEventImpl event, RegionEntry re, int oldSize) throws RegionClearedException { processVersionTag(re, event); event.putExistingEntry(_getOwner(), re); EntryLogger.logInvalidate(event); _getOwner().recordEvent(event); _getOwner().updateSizeOnPut(event.getKey(), oldSize, event.getNewValueBucketSize()); }
protected void invalidateEntry(EntryEventImpl event, RegionEntry re, int oldSize) throws RegionClearedException { processVersionTag(re, event); event.putExistingEntry(_getOwner(), re, oldSize); EntryLogger.logInvalidate(event); _getOwner().recordEvent(event); _getOwner().updateSizeOnPut(event.getKey(), oldSize, event.getNewValueBucketSize()); }
public void dumpMap(LogWriterI18n log) { StringId str = LocalizedStrings.DEBUG; log.info(str, "dump of concurrent map of size " + this._getMap().size() + " for region " + this._getOwner()); for (Iterator it = this._getMap().values().iterator(); it.hasNext(); ) { log.info(str, it.next().toString()); } }
private void processVersionTagForGII(RegionEntry re, LocalRegion owner, VersionTag entryVersion, boolean isTombstone, InternalDistributedMember sender, boolean checkConflicts) { re.getVersionStamp().processVersionTag(_getOwner(), entryVersion, isTombstone, false, owner.getMyId(), sender, checkConflicts); }
private void processVersionTagForGII(RegionEntry re, LocalRegion owner, VersionTag entryVersion, boolean isTombstone, InternalDistributedMember sender, boolean checkConflicts) { re.getVersionStamp().processVersionTag(_getOwner(), entryVersion, isTombstone, false, owner.getMyId(), sender, checkConflicts); }
private void updateSize(EntryEventImpl event, int oldSize, boolean isUpdate, boolean wasTombstone) { if (isUpdate && !wasTombstone) { _getOwner().updateSizeOnPut(event.getKey(), oldSize, event.getNewValueBucketSize()); } else { _getOwner().updateSizeOnCreate(event.getKey(), event.getNewValueBucketSize()); if (!wasTombstone) { incEntryCount(1); } } }
private void updateSize(EntryEventImpl event, int oldSize, boolean isUpdate, boolean wasTombstone) { if (isUpdate && !wasTombstone) { _getOwner().updateSizeOnPut(event.getKey(), oldSize, event.getNewValueBucketSize()); } else { _getOwner().updateSizeOnCreate(event.getKey(), event.getNewValueBucketSize()); if (!wasTombstone) { incEntryCount(1); } } }
/** * Asif: If the system is sqlfabric and the event has delta, then re == null * implies update on non existent row . Throwing ENFE in that case * As returning a boolean etc has other complications in terms of PR reattempt etc */ private void throwExceptionForSqlFire(EntryEventImpl event) { if (event.hasDelta() && _getOwner().getGemFireCache().isSqlfSystem()) { throw new EntryNotFoundException( "SqlFabric::No row found for update"); } }
/** * Asif: If the system is GemFireXD and the event has delta, then re == null * implies update on non existent row . Throwing ENFE in that case * As returning a boolean etc has other complications in terms of PR reattempt etc */ private void throwExceptionForGemFireXD(EntryEventImpl event) { if (event.hasDeltaPut() && _getOwner().getGemFireCache().isGFXDSystem()) { throw new EntryNotFoundException( "GemFireXD::No row found for update"); } }
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 RegionEntry putEntryIfAbsent(Object key, RegionEntry re) { RegionEntry value = (RegionEntry)_getMap().putIfAbsent(key, re); if (value == null && (re instanceof OffHeapRegionEntry) && _isOwnerALocalRegion() && _getOwner().isThisRegionBeingClosedOrDestroyed()) { // prevent orphan during concurrent destroy (#48068) if (_getMap().remove(key, re)) { ((OffHeapRegionEntry)re).release(); } _getOwner().checkReadiness(); // throw RegionDestroyedException } return value; }
public final RegionEntry putEntryIfAbsent(Object key, RegionEntry re) { RegionEntry value = (RegionEntry)_getMap().putIfAbsent(key, re); if (value == null && re.isOffHeap() && _isOwnerALocalRegion() && _getOwner().isThisRegionBeingClosedOrDestroyed()) { // prevent orphan during concurrent destroy (#48068) if (_getMap().remove(key, re)) { ((OffHeapRegionEntry)re).release(); } _getOwner().checkReadiness(); // throw RegionDestroyedException } return value; }
public final void removeEntry(Object key, RegionEntry re, boolean updateStat) { final LocalRegion owner = _getOwner(); if (re.isTombstone() && _getMap().get(key) == re && !re.isMarkedForEviction()) { owner.getLogWriterI18n().severe(LocalizedStrings.AbstractRegionMap_ATTEMPT_TO_REMOVE_TOMBSTONE, key, new Exception("stack trace")); return; // can't remove tombstones except from the tombstone sweeper } // _getOwner().getLogWriterI18n().info(LocalizedStrings.DEBUG, "DEBUG: removing entry " + re, new Exception("stack trace")); if (_getMap().remove(key, re)) { re.removePhase2(owner); if (updateStat) { incEntryCount(-1); } } }
protected void copyRecoveredEntry(RegionEntry oldRe, RegionEntry newRe) { if(newRe.getVersionStamp() != null) { newRe.getVersionStamp().setMemberID(oldRe.getVersionStamp().getMemberID()); newRe.getVersionStamp().setVersions(oldRe.getVersionStamp().asVersionTag()); } if (newRe instanceof AbstractOplogDiskRegionEntry) { ((AbstractOplogDiskRegionEntry)newRe).setDiskId(oldRe); _getOwner().getDiskRegion().replaceIncompatibleEntry((DiskEntry) oldRe, (DiskEntry) newRe); } _getMap().put(newRe.getKey(), newRe); }