@Override public NearCacheStats getNearCacheStats() { checkAvailable(); return nearCacheStats; }
@Override public StaleReadDetector getStaleReadDetector() { checkAvailable(); return staleReadDetector; }
@Override public NearCacheStats getNearCacheStats() { checkAvailable(); return nearCacheStats; }
@Override public void doEviction(boolean withoutMaxSizeCheck) { checkAvailable(); if (!evictionDisabled) { EvictionChecker evictionChecker = withoutMaxSizeCheck ? null : this.evictionChecker; evictionStrategy.evict(records, evictionPolicyEvaluator, evictionChecker, this); } }
@Override public V tryPublishReserved(K key, V value, long reservationId, boolean deserialize) { checkAvailable(); return updateAndGetReserved(key, value, reservationId, deserialize); }
@Override public int size() { checkAvailable(); return records.size(); }
@Override public V tryPublishReserved(K key, V value, long reservationId, boolean deserialize) { checkAvailable(); return updateAndGetReserved(key, value, reservationId, deserialize); }
@Override public void doEvictionIfRequired() { checkAvailable(); if (!evictionDisabled) { evictionStrategy.evict(records, evictionPolicyEvaluator, evictionChecker, this); } }
@Override public int size() { checkAvailable(); return records.size(); }
@Override public void doEviction() { checkAvailable(); if (!evictionDisabled) { evictionStrategy.evict(records, evictionPolicyEvaluator, null, this); } }
@Override public long tryReserveForUpdate(K key, Data keyData) { checkAvailable(); // if there is no eviction configured we return if the Near Cache is full and it's a new key // (we have to check the key, otherwise we might lose updates on existing keys) if (evictionDisabled && evictionChecker.isEvictionRequired() && !containsRecordKey(key)) { return NOT_RESERVED; } R reservedRecord = getOrCreateToReserve(key, keyData); long reservationId = nextReservationId(); if (reservedRecord.casRecordState(RESERVED, reservationId)) { return reservationId; } else { return NOT_RESERVED; } }
@Override public long tryReserveForUpdate(K key, Data keyData) { checkAvailable(); // if there is no eviction configured we return if the Near Cache is full and it's a new key // (we have to check the key, otherwise we might lose updates on existing keys) if (evictionDisabled && evictionChecker.isEvictionRequired() && !containsRecordKey(key)) { return NOT_RESERVED; } R reservedRecord = getOrCreateToReserve(key, keyData); long reservationId = nextReservationId(); if (reservedRecord.casRecordState(RESERVED, reservationId)) { return reservationId; } else { return NOT_RESERVED; } }
@Override public void clear() { checkAvailable(); int size = records.size(); records.clear(); nearCacheStats.setOwnedEntryCount(0); nearCacheStats.setOwnedEntryMemoryCost(0L); nearCacheStats.incrementInvalidations(size); nearCacheStats.incrementInvalidationRequests(); }
@Override public void clear() { checkAvailable(); int size = records.size(); records.clear(); nearCacheStats.setOwnedEntryCount(0); nearCacheStats.setOwnedEntryMemoryCost(0L); nearCacheStats.incrementInvalidations(size); nearCacheStats.incrementInvalidationRequests(); }
@Override public void put(K key, Data keyData, V value, Data valueData) { checkAvailable(); // if there is no eviction configured we return if the Near Cache is full and it's a new key // (we have to check the key, otherwise we might lose updates on existing keys) if (evictionDisabled && evictionChecker.isEvictionRequired() && !containsRecordKey(key)) { return; } R record = null; R oldRecord = null; try { record = createRecord((V) selectInMemoryFormatFriendlyValue(inMemoryFormat, value, valueData)); onRecordCreate(key, keyData, record); oldRecord = putRecord(key, record); if (oldRecord == null) { nearCacheStats.incrementOwnedEntryCount(); } onPut(key, value, record, oldRecord); } catch (Throwable error) { onPutError(key, value, record, oldRecord, error); throw rethrow(error); } }
@Override public void put(K key, Data keyData, V value) { checkAvailable(); // if there is no eviction configured we return if the Near Cache is full and it's a new key // (we have to check the key, otherwise we might lose updates on existing keys) if (evictionDisabled && evictionChecker.isEvictionRequired() && !containsRecordKey(key)) { return; } R record = null; R oldRecord = null; try { record = valueToRecord(value); onRecordCreate(key, keyData, record); oldRecord = putRecord(key, record); if (oldRecord == null) { nearCacheStats.incrementOwnedEntryCount(); } onPut(key, value, record, oldRecord); } catch (Throwable error) { onPutError(key, value, record, oldRecord, error); throw rethrow(error); } }
@Override public V get(K key) { checkAvailable();
@Override public V get(K key) { checkAvailable();