private void updateCacheOnRemoveUnlocked(final Object key) { if (!isEventual) { addIncoherentValueToCache(key, null, ObjectID.NULL_ID, MapOperationType.REMOVE); } else { addEventualValueToCache(key, null, ObjectID.NULL_ID, MapOperationType.REMOVE); } }
private void updateLocalCacheOnPut(final Object key, final Object value, final ObjectID valueObjectID) { if (!isEventual) { addIncoherentValueToCache(key, value, valueObjectID, MapOperationType.PUT); } else { addEventualValueToCache(key, value, valueObjectID, MapOperationType.PUT); } }
private void updateCacheOnRemoveUnlocked(final Object key) { if (!isEventual) { addIncoherentValueToCache(key, null, ObjectID.NULL_ID, MapOperationType.REMOVE); } else { addEventualValueToCache(key, null, ObjectID.NULL_ID, MapOperationType.REMOVE); } }
private void updateLocalCacheOnPut(final Object key, final Object value, final ObjectID valueObjectID) { if (!isEventual) { addIncoherentValueToCache(key, value, valueObjectID, MapOperationType.PUT); } else { addEventualValueToCache(key, value, valueObjectID, MapOperationType.PUT); } }
private void updateCacheOnRemoveUnlocked(final Object key) { if (!isEventual) { addIncoherentValueToCache(key, null, ObjectID.NULL_ID, MapOperationType.REMOVE); } else { addEventualValueToCache(key, null, ObjectID.NULL_ID, MapOperationType.REMOVE); } }
@Override public boolean doLogicalReplaceUnlocked(TCServerMap map, Object key, Object newValue) { Lock lock = getLockForKey(key); lock.lock(); try { final ObjectID valueObjectID = invokeLogicalReplace(key, newValue); if (!isEventual) { addIncoherentValueToCache(key, newValue, valueObjectID, MapOperationType.PUT); } else { addEventualValueToCache(key, newValue, valueObjectID, MapOperationType.PUT); } return true; } finally { lock.unlock(); } }
@Override public boolean doLogicalReplaceUnlocked(TCServerMap map, Object key, Object current, Object newValue) { Lock lock = getLockForKey(key); lock.lock(); try { ObjectID valueObjectID = invokeLogicalReplace(key, current, newValue); if (!isEventual) { addIncoherentValueToCache(key, newValue, valueObjectID, MapOperationType.PUT); } else { addEventualValueToCache(key, newValue, valueObjectID, MapOperationType.PUT); } return true; } finally { lock.unlock(); } }
/** * Does a logical put and updates the local cache but without an associated lock * * @param map ServerTCMap * @param key Key Object * @param value Object in the mapping */ @Override public void doLogicalPutUnlocked(TCServerMap map, Object key, Object value) { Lock lock = getLockForKey(key); lock.lock(); try { ObjectID valueObjectID = invokeLogicalPut(key, value); if (!isEventual) { addIncoherentValueToCache(key, value, valueObjectID, MapOperationType.PUT); } else { addEventualValueToCache(key, value, valueObjectID, MapOperationType.PUT); } } finally { lock.unlock(); } }
/** * Does a logical put and updates the local cache but without an associated lock * * @param map ServerTCMap * @param key Key Object * @param value Object in the mapping * @param version */ @Override public void doLogicalPutUnlockedVersioned(final TCServerMap map, final Object key, final Object value, final long version) { final Lock lock = getLockForKey(key); lock.lock(); try { final ObjectID valueObjectID = invokeLogicalPutVersioned(key, value, version); if (!isEventual) { addIncoherentValueToCache(key, value, valueObjectID, MapOperationType.PUT); } else { addEventualValueToCache(key, value, valueObjectID, MapOperationType.PUT); } } finally { lock.unlock(); } }
private void updateLocalCacheIfNecessary(final Object key, final Object value) { // Null values (i.e. cache misses) & literal values are not cached locally if (value != null && !LiteralValues.isLiteralInstance(value)) { if (isEventual) { // addEventualValueToCache(key, value, this.objectManager.lookupExistingObjectID(value), MapOperationType.GET); } else { addIncoherentValueToCache(key, value, this.objectManager.lookupExistingObjectID(value), MapOperationType.GET); } } }
private void updateLocalCacheIfNecessary(final Object key, final Object value) { // Null values (i.e. cache misses) & literal values are not cached locally if (value != null && !LiteralValues.isLiteralInstance(value)) { if (isEventual) { // addEventualValueToCache(key, value, this.objectManager.lookupExistingObjectID(value), MapOperationType.GET); } else { addIncoherentValueToCache(key, value, this.objectManager.lookupExistingObjectID(value), MapOperationType.GET); } } }
private void updateLocalCacheIfNecessary(final Object key, final Object value) { // Null values (i.e. cache misses) & literal values are not cached locally if (value != null && !LiteralValues.isLiteralInstance(value)) { if (isEventual) { // addEventualValueToCache(key, value, this.objectManager.lookupExistingObjectID(value), MapOperationType.GET); } else { addIncoherentValueToCache(key, value, this.objectManager.lookupExistingObjectID(value), MapOperationType.GET); } } }
@Override public Object doLogicalPutIfAbsentUnlocked(TCServerMap map, Object key, Object value) { Lock lock = getLockForKey(key); lock.lock(); try { AbstractLocalCacheStoreValue item = getValueUnlockedFromCache(key); if (item != null) { Object valueObject = item.getValueObject(); if (valueObject != null) { // Item already present return valueObject; } } ObjectID valueObjectID = invokeLogicalPutIfAbsent(key, value); if (!isEventual) { addIncoherentValueToCache(key, value, valueObjectID, MapOperationType.PUT); } else { addEventualValueToCache(key, value, valueObjectID, MapOperationType.PUT); } return null; } finally { lock.unlock(); } }