private void initializeOperationDetail(Operation operation) { if (operation.isLocalLoad()) { operationDetail = OP_DETAIL_LOCAL_LOAD; } else if (operation.isNetLoad()) { operationDetail = OP_DETAIL_NET_LOAD; } else if (operation.isPutAll()) { operationDetail = OP_DETAIL_PUTALL; } else if (operation.isRemoveAll()) { operationDetail = OP_DETAIL_REMOVEALL; } else { operationDetail = OP_DETAIL_NONE; } }
@Override public boolean putEntry(EntryEventImpl event, boolean ifNew, boolean ifOld, Object expectedOldValue, boolean requireOldValue, long lastModified, boolean overwriteDestroyed) { if (logger.isDebugEnabled()) { // [DISTTX] TODO Remove throwable logger.debug( "DistTXStateOnCoordinator.putEntry " + event.getKeyInfo().getKey()/* * , new Throwable() */); } boolean returnValue = super.putEntry(event, ifNew, ifOld, expectedOldValue, requireOldValue, lastModified, overwriteDestroyed); // putAll event is already added in postPutAll, don't add individual events // from the putAll operation again if (!event.getOperation().isPutAll()) { addPrimaryTransactionalOperations(new DistTxEntryEvent(event)); } return returnValue; }
@Override public boolean putEntryOnRemote(EntryEventImpl event, boolean ifNew, boolean ifOld, Object expectedOldValue, boolean requireOldValue, long lastModified, boolean overwriteDestroyed) throws DataLocationException { if (logger.isDebugEnabled()) { // [DISTTX] TODO Remove throwable logger.debug("DistTXStateOnCoordinator.putEntryOnRemote " + event.getKeyInfo().getKey()/* * , new Throwable() */); } boolean returnValue = super.putEntryOnRemote(event, ifNew, ifOld, expectedOldValue, requireOldValue, lastModified, overwriteDestroyed); // putAll event is already added in postPutAll, don't add individual events // from the putAll operation again if (!event.getOperation().isPutAll()) { addPrimaryTransactionalOperations(new DistTxEntryEvent(event)); } return returnValue; }
/** * Provide recipient information for an update or create operation. * */ Set adviseUpdate(final EntryEventImpl event) throws IllegalStateException { if (event.hasNewValue() || event.getOperation().isPutAll()) { // only need to distribute it to members that want all events or cache data return adviseAllEventsOrCached(true/* fixes 41147 */); } else { // The new value is null so this is a create with a null value, // in which case we only need to distribute this message to replicates // or all events that are not a proxy or if a proxy has a listener return adviseFilter(new Filter() { @Override public boolean include(Profile profile) { assert profile instanceof CacheProfile; CacheProfile cp = (CacheProfile) profile; DataPolicy dp = cp.dataPolicy; return dp.withReplication() || (cp.allEvents() && (dp.withStorage() || cp.hasCacheListener)); } }); } }
/** * check to see if a LowMemoryException should be thrown for this event */ @Override public void checkIfAboveThreshold(final EntryEventImpl entryEvent) throws LowMemoryException { if (entryEvent == null) { checkIfAboveThreshold("UNKNOWN"); return; } // Threshold check is performed elsewhere for putAll when there is a server proxy boolean alreadyCheckedThreshold = hasServerProxy() && entryEvent.getOperation().isPutAll(); if (!alreadyCheckedThreshold && !entryEvent.isOriginRemote()) { checkIfAboveThreshold(entryEvent.getKey()); } }
protected boolean needWriteLock(EntryEventImpl event) { return !(event.isOriginRemote() || event.isNetSearch() || event.getOperation().isLocal() || event.getOperation().isPutAll() || event.getOperation().isRemoveAll() || (event.isExpiration() && isEntryEvictDestroyEnabled() || event.isPendingSecondaryExpireDestroy())); }
@Override public boolean hasSeenEvent(EntryEventImpl event) { boolean isDuplicate = false; isDuplicate = getEventTracker().hasSeenEvent(event); if (isDuplicate) { markEventAsDuplicate(event); } else { // bug #48205 - a retried PR operation may already have a version assigned to it // in another VM if (event.isPossibleDuplicate() && event.getRegion().getConcurrencyChecksEnabled() && event.getVersionTag() == null && event.getEventId() != null) { boolean isBulkOp = event.getOperation().isPutAll() || event.getOperation().isRemoveAll(); VersionTag tag = FindVersionTagOperation.findVersionTag(event.getRegion(), event.getEventId(), isBulkOp); event.setVersionTag(tag); } } return isDuplicate; }
/** * Check NET_LOAD_CREATE Operation. */ @Test public void testNET_LOAD_CREATE() { Operation op = Operation.NET_LOAD_CREATE; assertTrue(op.isCreate()); assertFalse(op.isUpdate()); assertFalse(op.isInvalidate()); assertFalse(op.isDestroy()); assertFalse(op.isPutAll()); assertFalse(op.isRegionInvalidate()); assertFalse(op.isRegionDestroy()); assertFalse(op.isRegion()); assertFalse(op.isLocal()); assertTrue(op.isDistributed()); assertTrue(op.isEntry()); assertFalse(op.isExpiration()); assertFalse(op.isLocalLoad()); assertTrue(op.isNetLoad()); assertTrue(op.isLoad()); assertFalse(op.isNetSearch()); assertFalse(op.isClose()); assertFalse(op.isClear()); }
/** * Check REGION_LOCAL_INVALIDATE Operation. */ @Test public void testREGION_LOCAL_INVALIDATE() { Operation op = Operation.REGION_LOCAL_INVALIDATE; assertFalse(op.isCreate()); assertFalse(op.isUpdate()); assertFalse(op.isInvalidate()); assertFalse(op.isDestroy()); assertFalse(op.isPutAll()); assertTrue(op.isRegionInvalidate()); assertFalse(op.isRegionDestroy()); assertTrue(op.isRegion()); assertTrue(op.isLocal()); assertFalse(op.isDistributed()); assertFalse(op.isEntry()); assertFalse(op.isExpiration()); assertFalse(op.isLocalLoad()); assertFalse(op.isNetLoad()); assertFalse(op.isLoad()); assertFalse(op.isNetSearch()); assertFalse(op.isClose()); assertFalse(op.isClear()); }
/** * Check CACHE_CREATE Operation */ @Test public void testCACHE_CREATE() { Operation op = Operation.CACHE_CREATE; assertFalse(op.isCreate()); assertFalse(op.isUpdate()); assertFalse(op.isInvalidate()); assertFalse(op.isDestroy()); assertFalse(op.isPutAll()); assertFalse(op.isRegionInvalidate()); assertFalse(op.isRegionDestroy()); assertTrue(op.isRegion()); assertTrue(op.isLocal()); assertFalse(op.isDistributed()); assertFalse(op.isEntry()); assertFalse(op.isExpiration()); assertFalse(op.isLocalLoad()); assertFalse(op.isNetLoad()); assertFalse(op.isLoad()); assertFalse(op.isNetSearch()); assertFalse(op.isClose()); assertFalse(op.isClear()); }
/** * Check LOCAL_LOAD_CREATE Operation. */ @Test public void testLOCAL_LOAD_CREATE() { Operation op = Operation.LOCAL_LOAD_CREATE; assertTrue(op.isCreate()); assertFalse(op.isUpdate()); assertFalse(op.isInvalidate()); assertFalse(op.isDestroy()); assertFalse(op.isPutAll()); assertFalse(op.isRegionInvalidate()); assertFalse(op.isRegionDestroy()); assertFalse(op.isRegion()); assertFalse(op.isLocal()); assertTrue(op.isDistributed()); assertTrue(op.isEntry()); assertFalse(op.isExpiration()); assertTrue(op.isLocalLoad()); assertFalse(op.isNetLoad()); assertTrue(op.isLoad()); assertFalse(op.isNetSearch()); assertFalse(op.isClose()); assertFalse(op.isClear()); }
/** * Check UPDATE Operation. */ @Test public void testUPDATE() { Operation op = Operation.UPDATE; assertFalse(op.isCreate()); assertTrue(op.isUpdate()); assertFalse(op.isInvalidate()); assertFalse(op.isDestroy()); assertFalse(op.isPutAll()); assertFalse(op.isRegionInvalidate()); assertFalse(op.isRegionDestroy()); assertFalse(op.isRegion()); assertFalse(op.isLocal()); assertTrue(op.isDistributed()); assertTrue(op.isEntry()); assertFalse(op.isExpiration()); assertFalse(op.isLocalLoad()); assertFalse(op.isNetLoad()); assertFalse(op.isLoad()); assertFalse(op.isNetSearch()); assertFalse(op.isClose()); assertFalse(op.isClear()); }
/** * Check LOCAL_INVALIDATE Operation. */ @Test public void testLOCAL_INVALIDATE() { Operation op = Operation.LOCAL_INVALIDATE; assertFalse(op.isCreate()); assertFalse(op.isUpdate()); assertTrue(op.isInvalidate()); assertFalse(op.isDestroy()); assertFalse(op.isPutAll()); assertFalse(op.isRegionInvalidate()); assertFalse(op.isRegionDestroy()); assertFalse(op.isRegion()); assertTrue(op.isLocal()); assertFalse(op.isDistributed()); assertTrue(op.isEntry()); assertFalse(op.isExpiration()); assertFalse(op.isLocalLoad()); assertFalse(op.isNetLoad()); assertFalse(op.isLoad()); assertFalse(op.isNetSearch()); assertFalse(op.isClose()); assertFalse(op.isClear()); }
/** * Check REGION_LOAD_SNAPSHOT Operation. */ @Test public void testREGION_LOAD_SNAPSHOT() { Operation op = Operation.REGION_LOAD_SNAPSHOT; assertFalse(op.isCreate()); assertFalse(op.isUpdate()); assertFalse(op.isInvalidate()); assertFalse(op.isDestroy()); assertFalse(op.isPutAll()); assertFalse(op.isRegionInvalidate()); assertTrue(op.isRegionDestroy()); assertTrue(op.isRegion()); assertFalse(op.isLocal()); assertTrue(op.isDistributed()); assertFalse(op.isEntry()); assertFalse(op.isExpiration()); assertFalse(op.isLocalLoad()); assertFalse(op.isNetLoad()); assertFalse(op.isLoad()); assertFalse(op.isNetSearch()); assertFalse(op.isClose()); assertFalse(op.isClear()); }
/** * Check EXPIRE_DESTROY Operation. */ @Test public void testEXPIRE_DESTROY() { Operation op = Operation.EXPIRE_DESTROY; assertFalse(op.isCreate()); assertFalse(op.isUpdate()); assertFalse(op.isInvalidate()); assertTrue(op.isDestroy()); assertFalse(op.isPutAll()); assertFalse(op.isRegionInvalidate()); assertFalse(op.isRegionDestroy()); assertFalse(op.isRegion()); assertFalse(op.isLocal()); assertTrue(op.isDistributed()); assertTrue(op.isEntry()); assertTrue(op.isExpiration()); assertFalse(op.isLocalLoad()); assertFalse(op.isNetLoad()); assertFalse(op.isLoad()); assertFalse(op.isNetSearch()); assertFalse(op.isClose()); assertFalse(op.isClear()); }
/** * Check EXPIRE_LOCAL_DESTROY Operation. */ @Test public void testEXPIRE_LOCAL_DESTROY() { Operation op = Operation.EXPIRE_LOCAL_DESTROY; assertFalse(op.isCreate()); assertFalse(op.isUpdate()); assertFalse(op.isInvalidate()); assertTrue(op.isDestroy()); assertFalse(op.isPutAll()); assertFalse(op.isRegionInvalidate()); assertFalse(op.isRegionDestroy()); assertFalse(op.isRegion()); assertTrue(op.isLocal()); assertFalse(op.isDistributed()); assertTrue(op.isEntry()); assertTrue(op.isExpiration()); assertFalse(op.isLocalLoad()); assertFalse(op.isNetLoad()); assertFalse(op.isLoad()); assertFalse(op.isNetSearch()); assertFalse(op.isClose()); assertFalse(op.isClear()); }
/** * Check REGION_EXPIRE_LOCAL_DESTROY Operation. */ @Test public void testREGION_EXPIRE_LOCAL_DESTROY() { Operation op = Operation.REGION_EXPIRE_LOCAL_DESTROY; assertFalse(op.isCreate()); assertFalse(op.isUpdate()); assertFalse(op.isInvalidate()); assertFalse(op.isDestroy()); assertFalse(op.isPutAll()); assertFalse(op.isRegionInvalidate()); assertTrue(op.isRegionDestroy()); assertTrue(op.isRegion()); assertTrue(op.isLocal()); assertFalse(op.isDistributed()); assertFalse(op.isEntry()); assertTrue(op.isExpiration()); assertFalse(op.isLocalLoad()); assertFalse(op.isNetLoad()); assertFalse(op.isLoad()); assertFalse(op.isNetSearch()); assertFalse(op.isClose()); assertFalse(op.isClear()); }
/** * Check CACHE_CLOSE Operation. */ @Test public void testCACHE_CLOSE() { Operation op = Operation.CACHE_CLOSE; assertFalse(op.isCreate()); assertFalse(op.isUpdate()); assertFalse(op.isInvalidate()); assertFalse(op.isDestroy()); assertFalse(op.isPutAll()); assertFalse(op.isRegionInvalidate()); assertTrue(op.isRegionDestroy()); assertTrue(op.isRegion()); assertTrue(op.isLocal()); assertFalse(op.isDistributed()); assertFalse(op.isEntry()); assertFalse(op.isExpiration()); assertFalse(op.isLocalLoad()); assertFalse(op.isNetLoad()); assertFalse(op.isLoad()); assertFalse(op.isNetSearch()); assertTrue(op.isClose()); assertFalse(op.isClear()); }
/** * Check PUTALL_UPDATE Operation. */ @Test public void testPUTALL_UPDATE() { Operation op = Operation.PUTALL_UPDATE; assertFalse(op.isCreate()); assertTrue(op.isUpdate()); assertFalse(op.isInvalidate()); assertFalse(op.isDestroy()); assertTrue(op.isPutAll()); assertFalse(op.isRegionInvalidate()); assertFalse(op.isRegionDestroy()); assertFalse(op.isRegion()); assertFalse(op.isLocal()); assertTrue(op.isDistributed()); assertTrue(op.isEntry()); assertFalse(op.isExpiration()); assertFalse(op.isLocalLoad()); assertFalse(op.isNetLoad()); assertFalse(op.isLoad()); assertFalse(op.isNetSearch()); assertFalse(op.isClose()); assertFalse(op.isClear()); }
/** * Check LOCAL_LOAD_UPDATE Operation. */ @Test public void testLOCAL_LOAD_UPDATE() { Operation op = Operation.LOCAL_LOAD_UPDATE; assertFalse(op.isCreate()); assertTrue(op.isUpdate()); assertFalse(op.isInvalidate()); assertFalse(op.isDestroy()); assertFalse(op.isPutAll()); assertFalse(op.isRegionInvalidate()); assertFalse(op.isRegionDestroy()); assertFalse(op.isRegion()); assertFalse(op.isLocal()); assertTrue(op.isDistributed()); assertTrue(op.isEntry()); assertFalse(op.isExpiration()); assertTrue(op.isLocalLoad()); assertFalse(op.isNetLoad()); assertTrue(op.isLoad()); assertFalse(op.isNetSearch()); assertFalse(op.isClose()); assertFalse(op.isClear()); }