Object[] getKeysToBeLocked(EntryEventImpl event) { Object keys[] = new Object[1]; keys[0] = event.getKey(); return keys; }
@Override public void checkIfAboveThreshold(EntryEventImpl entryEvent) throws LowMemoryException { getRegionAdvisor().checkIfBucketSick(entryEvent.getKeyInfo().getBucketId(), entryEvent.getKey()); }
@Override public void basicDestroyBeforeRemoval(RegionEntry entry, EntryEventImpl event) { /** * We are doing local destroy on this bucket. No need to send destroy operation to remote nodes. */ if (logger.isDebugEnabled()) { logger.debug( "For Key {}, BasicDestroyBeforeRemoval: no need to send destroy operation to remote nodes. This will be done using BatchRemoval Message.", event.getKey()); } }
@Override public Object getValueInVM(EntryEventImpl event) throws EntryNotFoundException { if (this.dataStore == null) { throw new EntryNotFoundException(event.getKey().toString()); } final int bucketId = PartitionedRegionHelper.getHashKey(event); return this.dataStore.getLocalValueInVM(event.getKey(), bucketId); }
@Override protected void initMessage(CacheOperationMessage msg, DirectReplyProcessor processor) { super.initMessage(msg, processor); InvalidateMessage imsg = (InvalidateMessage) msg; EntryEventImpl eei = (EntryEventImpl) this.event; imsg.key = eei.getKey(); imsg.eventId = eei.getEventId(); }
@Override protected void initMessage(CacheOperationMessage msg, DirectReplyProcessor processor) { super.initMessage(msg, processor); DestroyMessage m = (DestroyMessage) msg; EntryEventImpl event = getEvent(); m.key = event.getKey(); m.eventId = event.getEventId(); }
public PRUpdateEntryVersionMessage(Set recipients, int regionId, DirectReplyProcessor processor, EntryEventImpl event) { super(recipients, regionId, processor, event); this.key = event.getKey(); this.op = event.getOperation(); this.eventId = event.getEventId(); this.versionTag = event.getVersionTag(); }
private void retryIfIsRemovedPhase2() { if (regionEntry.isRemovedPhase2()) { focusedRegionMap.getEntryMap().remove(event.getKey(), regionEntry); internalRegion.getCachePerfStats().incRetries(); retry = true; doContinue = true; } }
@Override protected void initMessage(CacheOperationMessage msg, DirectReplyProcessor p) { super.initMessage(msg, p); UpdateMessage m = (UpdateMessage) msg; EntryEventImpl ev = getEvent(); m.event = ev; m.eventId = ev.getEventId(); m.key = ev.getKey(); m.deserializationPolicy = DESERIALIZATION_POLICY_LAZY; ev.exportNewValue(m); }
@Override protected void initMessage(CacheOperationMessage msg, DirectReplyProcessor p) { super.initMessage(msg, p); UpdateEntryVersionMessage imsg = (UpdateEntryVersionMessage) msg; EntryEventImpl eei = getEvent(); imsg.key = eei.getKey(); imsg.eventId = eei.getEventId(); imsg.versionTag = eei.getVersionTag(); }
private void invalidateNewEntry(EntryEventImpl event, final LocalRegion owner, RegionEntry newRe) throws RegionClearedException { processVersionTag(newRe, event); event.putNewEntry(owner, newRe); owner.recordEvent(event); owner.updateSizeOnCreate(event.getKey(), event.getNewValueBucketSize()); }
@Override public void postRemoveAll(DistributedRemoveAllOperation removeAllOp, VersionedObjectList successfulOps, InternalRegion reg) { super.postRemoveAll(removeAllOp, successfulOps, reg); // TODO DISTTX: event is never released EntryEventImpl event = EntryEventImpl.createRemoveAllEvent(removeAllOp, reg, removeAllOp.getBaseEvent().getKey()); event.setEventId(removeAllOp.getBaseEvent().getEventId()); DistTxEntryEvent dtop = new DistTxEntryEvent(event); dtop.setRemoveAllOperation(removeAllOp); this.primaryTransactionalOperations.add(dtop); }
@Override public void destroyExistingEntry(EntryEventImpl event, boolean cacheWrite, Object expectedOldValue) { if (event.getOperation().isLocal()) { throw new UnsupportedOperationInTransactionException(); } Object result = proxy.destroy(event.getKey(), expectedOldValue, event.getOperation(), event, event.getCallbackArgument()); if (result instanceof EntryNotFoundException) { throw (EntryNotFoundException) result; } }
@Test public void evictDestroyWithEmptyRegionDoesNothing() { final TestableVMLRURegionMap arm = new TestableVMLRURegionMap(false); EntryEventImpl event = createEventForDestroy(arm._getOwner()); assertThat(arm.destroy(event, false, false, false, true, null, false)).isFalse(); verify(arm._getOwner(), never()).basicDestroyPart2(any(), any(), anyBoolean(), anyBoolean(), anyBoolean(), anyBoolean()); verify(arm._getOwner(), never()).basicDestroyPart3(any(), any(), anyBoolean(), anyBoolean(), anyBoolean(), any()); assertThat(arm.getEntryMap().containsKey(event.getKey())).isFalse(); }
@Override public void postRemoveAll(DistributedRemoveAllOperation removeAllOp, VersionedObjectList successfulOps, InternalRegion reg) { super.postRemoveAll(removeAllOp, successfulOps, reg); // TODO DISTTX: event is never released EntryEventImpl event = EntryEventImpl.createRemoveAllEvent(removeAllOp, reg, removeAllOp.getBaseEvent().getKey()); event.setEventId(removeAllOp.getBaseEvent().getEventId()); DistTxEntryEvent dtop = new DistTxEntryEvent(event); dtop.setRemoveAllOperation(removeAllOp); addPrimaryTransactionalOperations(dtop); }
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()); }
private void doPutOnSynchronizedRegionEntry() { setOldValueForDelta(); try { setOldValueInEvent(); doPutIfPreconditionsSatisified(); } finally { unsetOldValueForDelta(); if (isCreate() && shouldCreatedEntryBeRemoved()) { getRegionMap().removeEntry(getEvent().getKey(), getRegionEntry(), false); } } }
@Override public void postPutAll(DistributedPutAllOperation putallOp, VersionedObjectList successfulPuts, InternalRegion reg) { super.postPutAll(putallOp, successfulPuts, reg); // TODO DISTTX: event is never released EntryEventImpl event = EntryEventImpl.createPutAllEvent(putallOp, reg, Operation.PUTALL_CREATE, putallOp.getBaseEvent().getKey(), putallOp.getBaseEvent().getValue()); event.setEventId(putallOp.getBaseEvent().getEventId()); DistTxEntryEvent dtop = new DistTxEntryEvent(event); dtop.setPutAllOperation(putallOp); addPrimaryTransactionalOperations(dtop); }
private void createEntry() throws RegionClearedException { final EntryEventImpl event = getEvent(); final RegionEntry re = getRegionEntry(); final boolean wasTombstone = re.isTombstone(); getRegionMap().processVersionTag(re, event); event.putNewEntry(getOwner(), re); updateSize(0, false, wasTombstone); if (!event.getRegion().isInitialized()) { getOwner().getImageState().removeDestroyedEntry(event.getKey()); } }
@Test public void testClientEventIsUpdatedWithCurrentEntryVersionTagAfterLoad() { DistributedRegion region = prepare(true); EntryEventImpl event = createDummyEvent(region); region.basicInvalidate(event); createSearchLoad(); KeyInfo ki = new KeyInfo(event.getKey(), null, null); region.findObjectInSystem(ki, false, null, false, null, false, false, null, event, false); assertNotNull("ClientEvent version tag is not set with region version tag.", event.getVersionTag()); }