From aa7ecbff788ebc67e350fb737d0b05086ed8f089 Mon Sep 17 00:00:00 2001 From: rishabhdaim Date: Thu, 16 Apr 2026 14:46:06 +0530 Subject: [PATCH 01/11] OAK-12161 : removed guava's cachestats and did the final cleanup --- .../oak/plugins/blob/CachingBlobStore.java | 9 +- .../oak/plugins/blob/FileCache.java | 4 +- .../blob/datastore/DataStoreBlobStore.java | 9 +- .../oak/cache/AbstractCacheStats.java | 14 +- .../jackrabbit/oak/cache/CacheStats.java | 86 -------- .../oak/cache/EmpiricalWeigher.java | 15 +- .../jackrabbit/oak/cache/api/Cache.java | 2 +- ...eStatsSnapshot.java => CacheCounters.java} | 49 ++++- ...CacheStatsAdapter.java => CacheStats.java} | 24 +-- .../impl/caffeine/CaffeineCacheAdapter.java | 7 +- .../oak/cache/impl/lirs/LirsCacheAdapter.java | 6 +- .../jackrabbit/oak/cache/package-info.java | 2 +- .../oak/cache/AbstractCacheStatsTest.java | 5 +- .../jackrabbit/oak/cache/CacheStatsTest.java | 188 ------------------ ...sSnapshotTest.java => CacheStatsTest.java} | 36 ++-- .../oak/cache/impl/CacheBuilderTest.java | 8 +- .../caffeine/CaffeineCacheAdapterTest.java | 4 +- .../cache/impl/lirs/LirsCacheAdapterTest.java | 4 +- .../cache/impl/ConsolidatedCacheStats.java | 2 +- .../oak/cache/impl/CacheStatsMetricsTest.java | 6 +- .../lucene/LuceneIndexProviderService.java | 4 +- .../document/DocumentStoreIndexerBase.java | 4 +- .../index/search/ExtractedTextCache.java | 8 +- .../RemotePersistentCacheService.java | 7 +- .../oak/segment/CachingSegmentReader.java | 6 +- .../jackrabbit/oak/segment/ReaderCache.java | 12 +- .../jackrabbit/oak/segment/RecordCache.java | 15 +- .../oak/segment/RecordCacheStats.java | 8 +- .../jackrabbit/oak/segment/SegmentCache.java | 6 +- .../segment/SegmentNodeStoreRegistrar.java | 13 +- .../oak/segment/WriterCacheManager.java | 30 ++- .../oak/segment/file/PriorityCache.java | 6 +- .../persistentcache/SegmentCacheStats.java | 6 +- .../oak/segment/file/PriorityCacheTest.java | 2 +- .../oak/plugins/document/DiffCache.java | 3 +- .../plugins/document/DocumentNodeStore.java | 11 +- .../document/DocumentNodeStoreBuilder.java | 11 +- .../document/DocumentNodeStoreService.java | 3 +- .../oak/plugins/document/DocumentStore.java | 4 +- .../plugins/document/JournalDiffLoader.java | 4 +- .../oak/plugins/document/LocalDiffCache.java | 9 +- .../oak/plugins/document/MemoryDiffCache.java | 9 +- .../oak/plugins/document/TieredDiffCache.java | 4 +- .../document/cache/NodeDocumentCache.java | 12 +- .../document/memory/MemoryDocumentStore.java | 4 +- .../document/mongo/MongoDocumentStore.java | 4 +- .../document/persistentCache/NodeCache.java | 4 +- .../document/rdb/RDBDocumentStore.java | 3 +- .../util/LeaseCheckDocumentStoreWrapper.java | 4 +- .../util/LoggingDocumentStoreWrapper.java | 11 +- .../SynchronizingDocumentStoreWrapper.java | 4 +- .../util/ThrottlingDocumentStoreWrapper.java | 3 +- .../util/TimingDocumentStoreWrapper.java | 6 +- .../plugins/document/AmnesiaDiffCache.java | 4 +- .../document/CountingDocumentStore.java | 4 +- .../document/DocumentMKBuilderTest.java | 8 +- .../DocumentNodeStoreBuilderTest.java | 2 +- .../document/DocumentNodeStoreDiffTest.java | 8 +- .../document/DocumentStoreWrapper.java | 4 +- .../plugins/document/LocalDiffCacheTest.java | 16 +- .../plugins/document/MemoryDiffCacheTest.java | 4 +- .../plugins/document/NodeStoreDiffTest.java | 4 +- .../plugins/document/TieredDiffCacheTest.java | 4 +- .../cache/CacheChangesTrackerTest.java | 6 +- .../document/cache/NodeDocumentCacheTest.java | 4 +- specs/guava-cache-removal/TASKS.md | 4 +- 66 files changed, 258 insertions(+), 534 deletions(-) delete mode 100644 oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/CacheStats.java rename oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/{CacheStatsSnapshot.java => CacheCounters.java} (69%) rename oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/{CacheStatsAdapter.java => CacheStats.java} (69%) delete mode 100644 oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/CacheStatsTest.java rename oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/api/{CacheStatsSnapshotTest.java => CacheStatsTest.java} (78%) diff --git a/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/CachingBlobStore.java b/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/CachingBlobStore.java index 7ccede18579..3bbd16fb32b 100644 --- a/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/CachingBlobStore.java +++ b/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/CachingBlobStore.java @@ -16,9 +16,8 @@ */ package org.apache.jackrabbit.oak.plugins.blob; -import org.apache.jackrabbit.oak.cache.AbstractCacheStats; import org.apache.jackrabbit.oak.cache.CacheLIRS; -import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.cache.api.LoadingCache; import org.apache.jackrabbit.oak.cache.api.Weigher; import org.apache.jackrabbit.oak.commons.StringUtils; @@ -48,7 +47,7 @@ public abstract class CachingBlobStore extends AbstractBlobStore { return (int) weight; }; - private final AbstractCacheStats cacheStats; + private final CacheStats cacheStats; public static final String MEM_CACHE_NAME = "BlobStore-MemCache"; @@ -62,7 +61,7 @@ public CachingBlobStore(long cacheSize) { weigher(weigher::weigh). build().asOakCache(); - cacheStats = new CacheStatsAdapter(cache, MEM_CACHE_NAME, weigher, cacheSize); + cacheStats = new CacheStats(cache, MEM_CACHE_NAME, weigher, cacheSize); } public CachingBlobStore() { @@ -79,7 +78,7 @@ public long getBlobCacheSize() { return blobCacheSize; } - public AbstractCacheStats getCacheStats() { + public CacheStats getCacheStats() { return cacheStats; } } diff --git a/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/FileCache.java b/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/FileCache.java index 94fa0bfed61..8c34d663bb7 100644 --- a/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/FileCache.java +++ b/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/FileCache.java @@ -39,7 +39,7 @@ import org.apache.jackrabbit.oak.cache.CacheLIRS; import org.apache.jackrabbit.oak.cache.api.Cache; import org.apache.jackrabbit.oak.cache.api.CacheLoader; -import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.cache.api.Weigher; import org.apache.jackrabbit.oak.commons.StringUtils; import org.apache.jackrabbit.oak.commons.concurrent.ExecutorCloser; @@ -423,7 +423,7 @@ private int build() { } } -class FileCacheStats extends CacheStatsAdapter implements DataStoreCacheStatsMBean { +class FileCacheStats extends CacheStats implements DataStoreCacheStatsMBean { private static final long BLOCK_SIZE = 4 * 1024; private final Weigher weigher; private final Cache cache; diff --git a/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/datastore/DataStoreBlobStore.java b/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/datastore/DataStoreBlobStore.java index 6a44a2c855f..cd4f62eb207 100644 --- a/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/datastore/DataStoreBlobStore.java +++ b/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/datastore/DataStoreBlobStore.java @@ -54,8 +54,7 @@ import org.apache.jackrabbit.oak.api.blob.BlobUploadOptions; import org.apache.jackrabbit.oak.cache.AbstractCacheStats; import org.apache.jackrabbit.oak.cache.api.Cache; -import org.apache.jackrabbit.oak.cache.api.CacheBuilder; -import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.cache.api.Weigher; import org.apache.jackrabbit.oak.commons.StringUtils; import org.apache.jackrabbit.oak.commons.collections.IteratorUtils; @@ -134,7 +133,7 @@ public int weigh(@NotNull String key, @NotNull byte[] value) { } }; - private final AbstractCacheStats cacheStats; + private final CacheStats cacheStats; public static final String MEM_CACHE_NAME = "BlobStore-MemCache"; @@ -159,7 +158,7 @@ public DataStoreBlobStore(DataStore delegate, boolean encodeLengthInId, int cach .maximumWeight(cacheSize) .weigher(weigher::weigh) .build().asOakCache(); - this.cacheStats = new CacheStatsAdapter(cache, MEM_CACHE_NAME, weigher, cacheSize); + this.cacheStats = new CacheStats(cache, MEM_CACHE_NAME, weigher, cacheSize); } //~----------------------------------< DataStore > @@ -828,7 +827,7 @@ public DataStore getDataStore() { return delegate; } - public AbstractCacheStats getCacheStats() { + public CacheStats getCacheStats() { return cacheStats; } diff --git a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/AbstractCacheStats.java b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/AbstractCacheStats.java index ba2b8c381cf..398bed559db 100644 --- a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/AbstractCacheStats.java +++ b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/AbstractCacheStats.java @@ -25,8 +25,8 @@ import java.util.StringJoiner; import java.util.concurrent.TimeUnit; -import org.apache.jackrabbit.guava.common.cache.CacheStats; import org.apache.jackrabbit.oak.api.jmx.CacheStatsMBean; +import org.apache.jackrabbit.oak.cache.api.CacheCounters; import org.apache.jackrabbit.oak.commons.jmx.AnnotatedStandardMBean; import org.jetbrains.annotations.NotNull; @@ -38,8 +38,8 @@ public abstract class AbstractCacheStats extends AnnotatedStandardMBean implemen @NotNull private final String name; - private CacheStats lastSnapshot = - new CacheStats(0, 0, 0, 0, 0, 0); + private CacheCounters lastSnapshot = + new CacheCounters(0, 0, 0, 0, 0, 0); /** * Create a new {@code CacheStatsMBean} for a cache with the given {@code name}. @@ -51,19 +51,17 @@ protected AbstractCacheStats(@NotNull String name) { } /** - * Call back invoked to retrieve the most recent {@code CacheStats} instance of the + * Call back invoked to retrieve the most recent {@link CacheCounters} of the * underlying cache. */ - protected abstract CacheStats getCurrentStats(); + protected abstract CacheCounters getCurrentStats(); - private CacheStats stats() { + private CacheCounters stats() { return getCurrentStats().minus(lastSnapshot); } @Override public synchronized void resetStats() { - // Cache stats cannot be rest at Guava level. Instead we - // take a snapshot and then subtract it from future stats calls lastSnapshot = getCurrentStats(); } diff --git a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/CacheStats.java b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/CacheStats.java deleted file mode 100644 index 3860b91dfd8..00000000000 --- a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/CacheStats.java +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.jackrabbit.oak.cache; - -import java.util.Map; -import java.util.Objects; - -import org.apache.jackrabbit.guava.common.cache.Cache; -import org.apache.jackrabbit.guava.common.cache.Weigher; - -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -/** - * Cache statistics. - */ -public class CacheStats extends AbstractCacheStats { - private final Cache cache; - private final Weigher weigher; - private final long maxWeight; - - /** - * Construct the cache stats object. - * - * @param cache the cache - * @param name the name of the cache - * @param weigher the weigher used to estimate the current weight - * @param maxWeight the maximum weight - */ - @SuppressWarnings("unchecked") - public CacheStats( - @NotNull Cache cache, - @NotNull String name, - @Nullable Weigher weigher, - long maxWeight) { - super(name); - this.cache = (Cache) Objects.requireNonNull(cache); - this.weigher = (Weigher) weigher; - this.maxWeight = maxWeight; - } - - @Override - protected org.apache.jackrabbit.guava.common.cache.CacheStats getCurrentStats() { - return cache.stats(); - } - - @Override - public long getElementCount() { - return cache.size(); - } - - @Override - public long estimateCurrentWeight() { - if (weigher == null) { - return -1; - } - long size = 0; - for (Map.Entry e : cache.asMap().entrySet()) { - Object k = e.getKey(); - Object v = e.getValue(); - size += weigher.weigh(k, v); - } - return size; - } - - @Override - public long getMaxTotalWeight() { - return maxWeight; - } -} diff --git a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/EmpiricalWeigher.java b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/EmpiricalWeigher.java index fea96ae9bbf..7e7f5dbd03e 100644 --- a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/EmpiricalWeigher.java +++ b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/EmpiricalWeigher.java @@ -27,8 +27,7 @@ * Determines the weight of object based on the memory taken by them. The memory estimates * are based on empirical data and not exact */ -public class EmpiricalWeigher extends GuavaCompatibleEmpiricalWeigher - implements Weigher { +public class EmpiricalWeigher implements Weigher { static final Logger LOG = LoggerFactory.getLogger(EmpiricalWeigher.class); @@ -45,15 +44,3 @@ public int weigh(@NotNull CacheValue key, @NotNull CacheValue value) { } } - -/** - * Compatibility base class that keeps {@link EmpiricalWeigher} assignable to the - * legacy Guava-shim {@link org.apache.jackrabbit.guava.common.cache.Weigher} type while the public API migrates to - * {@link Weigher}. - * - *

TODO OAK-12162: remove this compatibility base in - * OAK-12162 once downstream callers no longer require {@link org.apache.jackrabbit.guava.common.cache.Weigher} - * assignability.

- */ -abstract class GuavaCompatibleEmpiricalWeigher implements org.apache.jackrabbit.guava.common.cache.Weigher { -} diff --git a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/Cache.java b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/Cache.java index ed4bb976b48..a26b9667f28 100644 --- a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/Cache.java +++ b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/Cache.java @@ -115,7 +115,7 @@ public interface Cache { * @return a stats snapshot (never null) */ @NotNull - CacheStatsSnapshot stats(); + CacheCounters stats(); /** * Returns a view of the entries stored in this cache as a thread-safe map. diff --git a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/CacheStatsSnapshot.java b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/CacheCounters.java similarity index 69% rename from oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/CacheStatsSnapshot.java rename to oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/CacheCounters.java index ec6f8e0e0ab..335e2ed7db2 100644 --- a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/CacheStatsSnapshot.java +++ b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/CacheCounters.java @@ -22,7 +22,7 @@ * An immutable snapshot of cache statistics at a point in time. * *

Returned by {@link Cache#stats()}. All counters are cumulative since - * the cache was created. Use {@link #minus(CacheStatsSnapshot)} to compute a delta + * the cache was created. Use {@link #minus(CacheCounters)} to compute a delta * between two snapshots.

* * @param hitCount number of times a requested key was found in the cache @@ -32,7 +32,7 @@ * @param totalLoadTime total time spent loading new values, in nanoseconds * @param evictionCount number of entries evicted from the cache */ -public record CacheStatsSnapshot( +public record CacheCounters( long hitCount, long missCount, long loadSuccessCount, @@ -71,6 +71,47 @@ public double missRate() { return requests == 0 ? 0.0 : (double) missCount / requests; } + /** + * Returns the total number of load attempts (successes + failures). + * + * @return load count + */ + public long loadCount() { + return loadSuccessCount + loadFailureCount; + } + + /** + * Returns the number of load attempts that threw an exception. + * Alias for {@link #loadFailureCount()}, matching the JMX interface naming. + * + * @return load exception count + */ + public long loadExceptionCount() { + return loadFailureCount; + } + + /** + * Returns the ratio of load attempts that threw an exception, or {@code 0.0} + * if no loads have been attempted. + * + * @return load exception rate between 0.0 and 1.0 + */ + public double loadExceptionRate() { + long loads = loadCount(); + return loads == 0 ? 0.0 : (double) loadFailureCount / loads; + } + + /** + * Returns the average time spent loading a new value, in nanoseconds, or + * {@code 0.0} if no loads have been attempted. + * + * @return average load penalty in nanoseconds + */ + public double averageLoadPenalty() { + long loads = loadCount(); + return loads == 0 ? 0.0 : (double) totalLoadTime / loads; + } + /** * Returns the difference between this snapshot and an earlier {@code other} * snapshot, useful for computing per-interval deltas. @@ -79,8 +120,8 @@ public double missRate() { * @return a new snapshot representing the delta */ @NotNull - public CacheStatsSnapshot minus(@NotNull CacheStatsSnapshot other) { - return new CacheStatsSnapshot( + public CacheCounters minus(@NotNull CacheCounters other) { + return new CacheCounters( Math.max(0, hitCount - other.hitCount), Math.max(0, missCount - other.missCount), Math.max(0, loadSuccessCount - other.loadSuccessCount), diff --git a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/CacheStatsAdapter.java b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/CacheStats.java similarity index 69% rename from oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/CacheStatsAdapter.java rename to oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/CacheStats.java index e1bef782532..03acbde1e78 100644 --- a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/CacheStatsAdapter.java +++ b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/CacheStats.java @@ -23,18 +23,10 @@ import org.jetbrains.annotations.Nullable; /** - * Exposes an {@link Cache}'s statistics via the {@link org.apache.jackrabbit.oak.api.jmx.CacheStatsMBean} - * interface by bridging {@link CacheStatsSnapshot} to the Guava shim {@link org.apache.jackrabbit.guava.common.cache.CacheStats} expected - * by {@link AbstractCacheStats}. - * - *

The Guava return type from {@link #getCurrentStats()} is kept until TASK-16 updates - * the base class to use {@link CacheStatsSnapshot} directly.

- * - *

TODO OAK-TASK16: per {@code TASKS.md}, remove this temporary adapter in - * TASK-16 once {@link AbstractCacheStats} consumes {@link CacheStatsSnapshot} - * directly.

+ * Exposes a {@link Cache}'s statistics via the {@link org.apache.jackrabbit.oak.api.jmx.CacheStatsMBean} + * interface. */ -public class CacheStatsAdapter extends AbstractCacheStats { +public class CacheStats extends AbstractCacheStats { private final Cache cache; private final Weigher weigher; @@ -49,7 +41,7 @@ public class CacheStatsAdapter extends AbstractCacheStats { * @param maxWeight configured maximum weight for the cache; {@code -1} if unbounded */ @SuppressWarnings("unchecked") - public CacheStatsAdapter( + public CacheStats( @NotNull Cache cache, @NotNull String name, @Nullable Weigher weigher, @@ -61,12 +53,8 @@ public CacheStatsAdapter( } @Override - protected org.apache.jackrabbit.guava.common.cache.CacheStats getCurrentStats() { - CacheStatsSnapshot s = cache.stats(); - return new org.apache.jackrabbit.guava.common.cache.CacheStats( - s.hitCount(), s.missCount(), - s.loadSuccessCount(), s.loadFailureCount(), - s.totalLoadTime(), s.evictionCount()); + protected CacheCounters getCurrentStats() { + return cache.stats(); } @Override diff --git a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/impl/caffeine/CaffeineCacheAdapter.java b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/impl/caffeine/CaffeineCacheAdapter.java index 92510a885e0..c11dfe973a3 100644 --- a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/impl/caffeine/CaffeineCacheAdapter.java +++ b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/impl/caffeine/CaffeineCacheAdapter.java @@ -20,9 +20,8 @@ import java.util.concurrent.ConcurrentMap; import java.util.function.Function; -import com.github.benmanes.caffeine.cache.Policy; import com.github.benmanes.caffeine.cache.RemovalCause; -import org.apache.jackrabbit.oak.cache.api.CacheStatsSnapshot; +import org.apache.jackrabbit.oak.cache.api.CacheCounters; import org.apache.jackrabbit.oak.cache.api.Cache; import org.apache.jackrabbit.oak.cache.api.EvictionCause; import org.jetbrains.annotations.NotNull; @@ -75,9 +74,9 @@ public long estimatedSize() { @Override @NotNull - public CacheStatsSnapshot stats() { + public CacheCounters stats() { com.github.benmanes.caffeine.cache.stats.CacheStats s = cache.stats(); - return new CacheStatsSnapshot( + return new CacheCounters( s.hitCount(), s.missCount(), s.loadSuccessCount(), s.loadFailureCount(), s.totalLoadTime(), s.evictionCount()); diff --git a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/impl/lirs/LirsCacheAdapter.java b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/impl/lirs/LirsCacheAdapter.java index 02fbf7f44c9..55a2fbd79c8 100644 --- a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/impl/lirs/LirsCacheAdapter.java +++ b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/impl/lirs/LirsCacheAdapter.java @@ -24,7 +24,7 @@ import org.apache.jackrabbit.guava.common.cache.RemovalCause; import org.apache.jackrabbit.oak.cache.CacheLIRS; -import org.apache.jackrabbit.oak.cache.api.CacheStatsSnapshot; +import org.apache.jackrabbit.oak.cache.api.CacheCounters; import org.apache.jackrabbit.oak.cache.api.Cache; import org.apache.jackrabbit.oak.cache.api.EvictionCause; import org.jetbrains.annotations.NotNull; @@ -85,9 +85,9 @@ public long estimatedSize() { @Override @NotNull - public CacheStatsSnapshot stats() { + public CacheCounters stats() { org.apache.jackrabbit.guava.common.cache.CacheStats s = cache.stats(); - return new CacheStatsSnapshot( + return new CacheCounters( s.hitCount(), s.missCount(), s.loadSuccessCount(), s.loadExceptionCount(), s.totalLoadTime(), s.evictionCount()); diff --git a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/package-info.java b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/package-info.java index 61515af957e..a9a2f2e4336 100644 --- a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/package-info.java +++ b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/package-info.java @@ -19,7 +19,7 @@ * For Oak internal use only. Do not use outside Oak components. */ @Internal(since = "1.1.1") -@Version("2.1") +@Version("3.0") package org.apache.jackrabbit.oak.cache; import org.apache.jackrabbit.oak.commons.annotations.Internal; diff --git a/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/AbstractCacheStatsTest.java b/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/AbstractCacheStatsTest.java index 4d3fb779d4e..7a4c92a38ff 100644 --- a/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/AbstractCacheStatsTest.java +++ b/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/AbstractCacheStatsTest.java @@ -18,6 +18,7 @@ import java.util.concurrent.ExecutionException; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.junit.Assert; import org.junit.Before; import org.junit.Test; @@ -38,7 +39,7 @@ public class AbstractCacheStatsTest { @Before public void setUp() { cache = new CacheLIRS<>(null, MAX_WEIGHT, 1, 1, 0, null, null, null); - stats = new CacheStats(cache, CACHE_NAME, null, MAX_WEIGHT); + stats = new CacheStats(cache.asOakCache(), CACHE_NAME, null, MAX_WEIGHT); } @Test @@ -95,7 +96,7 @@ public void evictionCountIncreasesAfterCapacityEviction() { CacheLIRS smallCache = CacheLIRS.newBuilder() .maximumSize(5) .build(); - CacheStats smallStats = new CacheStats(smallCache, "small", null, 5); + CacheStats smallStats = new CacheStats(smallCache.asOakCache(), "small", null, 5); for (int i = 0; i < 30; i++) { smallCache.put("k" + i, "v" + i); } diff --git a/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/CacheStatsTest.java b/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/CacheStatsTest.java deleted file mode 100644 index 2f0e3e48941..00000000000 --- a/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/CacheStatsTest.java +++ /dev/null @@ -1,188 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -package org.apache.jackrabbit.oak.cache; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -import java.util.concurrent.Callable; -import java.util.concurrent.ExecutionException; - -import org.apache.jackrabbit.guava.common.cache.Cache; -import org.apache.jackrabbit.guava.common.cache.CacheBuilder; -import org.apache.jackrabbit.guava.common.cache.Weigher; -import org.jetbrains.annotations.NotNull; -import org.junit.Before; -import org.junit.Test; - -public class CacheStatsTest { - private static final String NAME = "cache stats"; - private static final int KEYS = 100; - - private final Weigher weigher = new Weigher() { - @Override - public int weigh(@NotNull Integer key, @NotNull Integer value) { - return 1; - } - }; - - private final Cache cache = CacheBuilder.newBuilder() - .recordStats() - .maximumWeight(Long.MAX_VALUE) - .weigher(weigher) - .build(); - - private final CacheStats cacheStats = - new CacheStats(cache, NAME, weigher, Long.MAX_VALUE); - - private int misses; - private int fails; - private long loadTime; - - @Before - public void setup() { - for (int k = 0; k < KEYS; k++) { - cache.put(k, k); - } - - for (int k = 0; k < 100; k++) { - final int key = 4 * k; - try { - cache.get(key, new Callable() { - @Override - public Integer call() throws Exception { - long t0 = System.nanoTime(); - try { - if (key % 10 == 0) { - fails++; - throw new Exception("simulated load failure"); - } else { - misses++; - return key; - } - } finally { - loadTime += System.nanoTime() - t0; - } - - } - }); - } catch (ExecutionException ignore) { } - } - } - - @Test - public void name() throws Exception { - assertEquals(NAME, cacheStats.getName()); - } - - @Test - public void getRequestCount() { - assertEquals(KEYS, cacheStats.getRequestCount()); - } - - @Test - public void getHitCount() { - assertEquals(KEYS - misses - fails, cacheStats.getHitCount()); - } - - @Test - public void getHitRate() { - assertEquals((KEYS - (double) misses - fails)/KEYS, cacheStats.getHitRate(), Double.MIN_VALUE); - } - - @Test - public void getMissCount() { - assertEquals(misses + fails, cacheStats.getMissCount()); - } - - @Test - public void getMissRate() { - assertEquals(((double)misses + fails)/KEYS, cacheStats.getMissRate(), Double.MIN_VALUE); - } - - @Test - public void getLoadCount() { - assertEquals(misses + fails, cacheStats.getLoadCount()); - } - - @Test - public void getLoadSuccessCount() { - assertEquals(misses, cacheStats.getLoadSuccessCount()); - } - - @Test - public void getLoadExceptionCount() { - assertEquals(fails, cacheStats.getLoadExceptionCount()); - } - - @Test - public void getLoadExceptionRate() { - assertEquals((double)fails/(misses + fails), cacheStats.getLoadExceptionRate(), Double.MIN_VALUE); - } - - @Test - public void getTotalLoadTime() { - assertTrue(loadTime <= cacheStats.getTotalLoadTime()); - } - - @Test - public void getAverageLoadPenalty() { - assertTrue(((double)loadTime/(misses + fails)) <= cacheStats.getAverageLoadPenalty()); - } - - @Test - public void getEvictionCount() { - assertEquals(0, cacheStats.getEvictionCount()); - } - - @Test - public void getElementCount() { - assertEquals(KEYS + misses, cacheStats.getElementCount()); - } - - @Test - public void getMaxTotalWeight() { - assertEquals(Long.MAX_VALUE, cacheStats.getMaxTotalWeight()); - } - - @Test - public void estimateCurrentWeight() { - assertEquals(KEYS + misses, cacheStats.estimateCurrentWeight()); - } - - @Test - public void resetStats() { - cacheStats.resetStats(); - assertEquals(0, cacheStats.getRequestCount()); - assertEquals(0, cacheStats.getHitCount()); - assertEquals(1.0, cacheStats.getHitRate(), Double.MIN_VALUE); - assertEquals(0, cacheStats.getMissCount()); - assertEquals(0.0, cacheStats.getMissRate(), Double.MIN_VALUE); - assertEquals(0, cacheStats.getLoadCount()); - assertEquals(0, cacheStats.getLoadSuccessCount()); - assertEquals(0, cacheStats.getLoadExceptionCount()); - assertEquals(0, cacheStats.getLoadExceptionRate(), Double.MIN_VALUE); - assertEquals(0, cacheStats.getTotalLoadTime()); - assertEquals(0, cacheStats.getAverageLoadPenalty(), Double.MIN_VALUE); - assertEquals(0, cacheStats.getEvictionCount()); - assertEquals(KEYS + misses, cacheStats.getElementCount()); - assertEquals(Long.MAX_VALUE, cacheStats.getMaxTotalWeight()); - assertEquals(KEYS + misses, cacheStats.estimateCurrentWeight()); - } -} diff --git a/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/api/CacheStatsSnapshotTest.java b/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/api/CacheStatsTest.java similarity index 78% rename from oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/api/CacheStatsSnapshotTest.java rename to oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/api/CacheStatsTest.java index 4820634feca..c6777086b0b 100644 --- a/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/api/CacheStatsSnapshotTest.java +++ b/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/api/CacheStatsTest.java @@ -19,55 +19,55 @@ import org.junit.Assert; import org.junit.Test; -/** Tests for {@link CacheStatsSnapshot}. */ -public class CacheStatsSnapshotTest { +/** Tests for {@link CacheCounters}. */ +public class CacheStatsTest { - private CacheStatsSnapshot stats(long hits, long misses, long loadSuccess, long loadFail, - long loadTime, long evictions) { - return new CacheStatsSnapshot(hits, misses, loadSuccess, loadFail, loadTime, evictions); + private CacheCounters stats(long hits, long misses, long loadSuccess, long loadFail, + long loadTime, long evictions) { + return new CacheCounters(hits, misses, loadSuccess, loadFail, loadTime, evictions); } /** Verifies that {@code requestCount()} returns the sum of hits and misses. */ @Test public void requestCountIsHitsPlusMisses() { - CacheStatsSnapshot s = stats(3, 7, 0, 0, 0, 0); + CacheCounters s = stats(3, 7, 0, 0, 0, 0); Assert.assertEquals(10, s.requestCount()); } /** Verifies that {@code hitRate()} returns hits divided by total requests. */ @Test public void hitRateWithRequests() { - CacheStatsSnapshot s = stats(3, 7, 0, 0, 0, 0); + CacheCounters s = stats(3, 7, 0, 0, 0, 0); Assert.assertEquals(0.3, s.hitRate(), 0.001); } /** Verifies that {@code hitRate()} returns {@code 1.0} when no requests have been made. */ @Test public void hitRateWithNoRequestsReturnsOne() { - CacheStatsSnapshot s = stats(0, 0, 0, 0, 0, 0); + CacheCounters s = stats(0, 0, 0, 0, 0, 0); Assert.assertEquals(1.0, s.hitRate(), 0.0); } /** Verifies that {@code missRate()} returns misses divided by total requests. */ @Test public void missRateWithRequests() { - CacheStatsSnapshot s = stats(3, 7, 0, 0, 0, 0); + CacheCounters s = stats(3, 7, 0, 0, 0, 0); Assert.assertEquals(0.7, s.missRate(), 0.001); } /** Verifies that {@code missRate()} returns {@code 0.0} when no requests have been made. */ @Test public void missRateWithNoRequestsReturnsZero() { - CacheStatsSnapshot s = stats(0, 0, 0, 0, 0, 0); + CacheCounters s = stats(0, 0, 0, 0, 0, 0); Assert.assertEquals(0.0, s.missRate(), 0.0); } /** Verifies that {@code minus()} produces the correct per-field delta between two snapshots. */ @Test public void minusProducesDelta() { - CacheStatsSnapshot later = stats(10, 5, 4, 1, 1000, 3); - CacheStatsSnapshot earlier = stats(6, 3, 2, 0, 400, 1); - CacheStatsSnapshot delta = later.minus(earlier); + CacheCounters later = stats(10, 5, 4, 1, 1000, 3); + CacheCounters earlier = stats(6, 3, 2, 0, 400, 1); + CacheCounters delta = later.minus(earlier); Assert.assertEquals(4, delta.hitCount()); Assert.assertEquals(2, delta.missCount()); @@ -80,9 +80,9 @@ public void minusProducesDelta() { /** Verifies that {@code minus()} clamps negative deltas to zero when the earlier snapshot has larger values. */ @Test public void minusClampsNegativeValuesToZero() { - CacheStatsSnapshot later = stats(5, 2, 1, 0, 100, 1); - CacheStatsSnapshot earlier = stats(9, 3, 2, 1, 200, 2); - CacheStatsSnapshot delta = later.minus(earlier); + CacheCounters later = stats(5, 2, 1, 0, 100, 1); + CacheCounters earlier = stats(9, 3, 2, 1, 200, 2); + CacheCounters delta = later.minus(earlier); Assert.assertEquals(0, delta.hitCount()); Assert.assertEquals(0, delta.missCount()); @@ -95,7 +95,7 @@ public void minusClampsNegativeValuesToZero() { /** Verifies that all record accessors return the values supplied to the canonical constructor. */ @Test public void accessorsReturnConstructorValues() { - CacheStatsSnapshot s = stats(1, 2, 3, 4, 5, 6); + CacheCounters s = stats(1, 2, 3, 4, 5, 6); Assert.assertEquals(1, s.hitCount()); Assert.assertEquals(2, s.missCount()); Assert.assertEquals(3, s.loadSuccessCount()); @@ -107,7 +107,7 @@ public void accessorsReturnConstructorValues() { /** Verifies that {@code toString()} includes every field name and its value. */ @Test public void toStringContainsAllFields() { - CacheStatsSnapshot s = stats(1, 2, 3, 4, 5, 6); + CacheCounters s = stats(1, 2, 3, 4, 5, 6); String str = s.toString(); Assert.assertTrue(str.contains("hitCount=1")); Assert.assertTrue(str.contains("missCount=2")); diff --git a/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/impl/CacheBuilderTest.java b/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/impl/CacheBuilderTest.java index e0fd02f39cf..c48429fb362 100644 --- a/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/impl/CacheBuilderTest.java +++ b/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/impl/CacheBuilderTest.java @@ -22,11 +22,11 @@ import java.util.concurrent.atomic.AtomicReference; import org.apache.jackrabbit.oak.cache.api.Cache; -import org.apache.jackrabbit.oak.cache.api.CacheStatsSnapshot; +import org.apache.jackrabbit.oak.cache.api.CacheCounters; import org.apache.jackrabbit.oak.cache.api.LoadingCache; import org.apache.jackrabbit.oak.cache.api.EvictionCause; import org.apache.jackrabbit.oak.cache.api.CacheBuilder; -import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.cache.impl.caffeine.CaffeineCacheAdapter; import org.apache.jackrabbit.oak.cache.impl.caffeine.CaffeineLoadingCacheAdapter; import org.junit.Assert; @@ -172,7 +172,7 @@ public void statsReturnsCorrectHitMissCounts() { cache.getIfPresent("k"); cache.getIfPresent("missing"); - CacheStatsSnapshot stats = cache.stats(); + CacheCounters stats = cache.stats(); Assert.assertNotNull(stats); Assert.assertEquals(1, stats.hitCount()); Assert.assertEquals(1, stats.missCount()); @@ -239,7 +239,7 @@ public void oakCacheStatsAdapterBridgesOakStats() { .weigher((k, v) -> k.length() + v.length()) .recordStats() .build(); - CacheStatsAdapter stats = new CacheStatsAdapter( + CacheStats stats = new CacheStats( cache, "testCache", (k, v) -> k.length() + v.length(), 100); cache.put("aa", "bbb"); diff --git a/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/impl/caffeine/CaffeineCacheAdapterTest.java b/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/impl/caffeine/CaffeineCacheAdapterTest.java index cda9f1ff4da..1111309f9ad 100644 --- a/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/impl/caffeine/CaffeineCacheAdapterTest.java +++ b/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/impl/caffeine/CaffeineCacheAdapterTest.java @@ -20,7 +20,7 @@ import com.github.benmanes.caffeine.cache.Caffeine; import com.github.benmanes.caffeine.cache.RemovalCause; -import org.apache.jackrabbit.oak.cache.api.CacheStatsSnapshot; +import org.apache.jackrabbit.oak.cache.api.CacheCounters; import org.apache.jackrabbit.oak.cache.api.EvictionCause; import org.junit.Assert; import org.junit.Test; @@ -45,7 +45,7 @@ public void statsSnapshotReflectsUnderlyingCacheStats() { adapter.getIfPresent("hit"); adapter.getIfPresent("miss"); - CacheStatsSnapshot stats = adapter.stats(); + CacheCounters stats = adapter.stats(); Assert.assertEquals(1, stats.hitCount()); Assert.assertEquals(1, stats.missCount()); } diff --git a/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/impl/lirs/LirsCacheAdapterTest.java b/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/impl/lirs/LirsCacheAdapterTest.java index b231067c660..16864bd7696 100644 --- a/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/impl/lirs/LirsCacheAdapterTest.java +++ b/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/impl/lirs/LirsCacheAdapterTest.java @@ -21,7 +21,7 @@ import org.apache.jackrabbit.guava.common.cache.RemovalCause; import org.apache.jackrabbit.oak.cache.CacheLIRS; -import org.apache.jackrabbit.oak.cache.api.CacheStatsSnapshot; +import org.apache.jackrabbit.oak.cache.api.CacheCounters; import org.apache.jackrabbit.oak.cache.api.EvictionCause; import org.junit.Assert; import org.junit.Test; @@ -51,7 +51,7 @@ public void statsSnapshotReflectsUnderlyingCacheStats() { adapter.getIfPresent("hit"); adapter.getIfPresent("miss"); - CacheStatsSnapshot stats = adapter.stats(); + CacheCounters stats = adapter.stats(); Assert.assertEquals(1, stats.hitCount()); Assert.assertEquals(1, stats.missCount()); } diff --git a/oak-core/src/main/java/org/apache/jackrabbit/oak/cache/impl/ConsolidatedCacheStats.java b/oak-core/src/main/java/org/apache/jackrabbit/oak/cache/impl/ConsolidatedCacheStats.java index 10234e879f5..7bdc2d6bc4f 100644 --- a/oak-core/src/main/java/org/apache/jackrabbit/oak/cache/impl/ConsolidatedCacheStats.java +++ b/oak-core/src/main/java/org/apache/jackrabbit/oak/cache/impl/ConsolidatedCacheStats.java @@ -44,7 +44,7 @@ import org.osgi.service.component.annotations.Component; import org.osgi.service.component.annotations.Deactivate; -import static org.apache.jackrabbit.oak.cache.CacheStats.timeInWords; +import static org.apache.jackrabbit.oak.cache.AbstractCacheStats.timeInWords; import static org.apache.jackrabbit.oak.commons.IOUtils.humanReadableByteCount; import static org.apache.jackrabbit.oak.spi.whiteboard.WhiteboardUtils.registerMBean; diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/cache/impl/CacheStatsMetricsTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/cache/impl/CacheStatsMetricsTest.java index 46afc9ece77..48c81af39c0 100644 --- a/oak-core/src/test/java/org/apache/jackrabbit/oak/cache/impl/CacheStatsMetricsTest.java +++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/cache/impl/CacheStatsMetricsTest.java @@ -26,6 +26,7 @@ import org.apache.jackrabbit.oak.api.jmx.CacheStatsMBean; import org.apache.jackrabbit.oak.cache.AbstractCacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheCounters; import org.jetbrains.annotations.NotNull; import org.junit.Test; @@ -94,9 +95,8 @@ private static class TestStats extends AbstractCacheStats { } @Override - protected org.apache.jackrabbit.guava.common.cache.CacheStats getCurrentStats() { - return new org.apache.jackrabbit.guava.common.cache.CacheStats( - HIT_COUNT, MISS_COUNT, MISS_COUNT, 0, LOAD_TIME, EVICTION_COUNT); + protected CacheCounters getCurrentStats() { + return new CacheCounters(HIT_COUNT, MISS_COUNT, MISS_COUNT, 0, LOAD_TIME, EVICTION_COUNT); } @Override diff --git a/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexProviderService.java b/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexProviderService.java index 0b9019e67a3..33931448797 100644 --- a/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexProviderService.java +++ b/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexProviderService.java @@ -34,7 +34,7 @@ import org.apache.commons.io.FilenameUtils; import org.apache.jackrabbit.oak.api.jmx.CacheStatsMBean; import org.apache.jackrabbit.oak.api.jmx.CheckpointMBean; -import org.apache.jackrabbit.oak.cache.AbstractCacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.commons.internal.concurrent.ExecutorHelper; import org.apache.jackrabbit.oak.osgi.OsgiWhiteboard; import org.apache.jackrabbit.oak.plugins.document.spi.JournalPropertyService; @@ -686,7 +686,7 @@ private void initializeExtractedTextCache(BundleContext bundleContext, Configura if (extractedTextProvider != null){ registerExtractedTextProvider(extractedTextProvider); } - AbstractCacheStats stats = extractedTextCache.getCacheStats(); + CacheStats stats = extractedTextCache.getCacheStats(); if (stats != null){ oakRegs.add(registerMBean(whiteboard, CacheStatsMBean.class, stats, diff --git a/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/DocumentStoreIndexerBase.java b/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/DocumentStoreIndexerBase.java index bf173b3c9ea..096612305c0 100644 --- a/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/DocumentStoreIndexerBase.java +++ b/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/DocumentStoreIndexerBase.java @@ -21,7 +21,7 @@ import com.codahale.metrics.MetricRegistry; import com.mongodb.ConnectionString; import org.apache.jackrabbit.oak.api.CommitFailedException; -import org.apache.jackrabbit.oak.cache.AbstractCacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.commons.PathUtils; import org.apache.jackrabbit.oak.commons.concurrent.ExecutorCloser; import org.apache.jackrabbit.oak.commons.pio.Closer; @@ -407,7 +407,7 @@ public void reindex() throws CommitFailedException, IOException { } } ExtractedTextCache extractedTextCache = indexerProvider.getTextCache(); - AbstractCacheStats cacheStats = extractedTextCache == null ? null : extractedTextCache.getCacheStats(); + CacheStats cacheStats = extractedTextCache == null ? null : extractedTextCache.getCacheStats(); log.info("Text extraction cache statistics: {}", cacheStats == null ? "N/A" : cacheStats.cacheInfoAsString()); progressReporter.reindexingTraversalEnd(); diff --git a/oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/ExtractedTextCache.java b/oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/ExtractedTextCache.java index dc3d39571ce..aae11ea72a6 100644 --- a/oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/ExtractedTextCache.java +++ b/oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/ExtractedTextCache.java @@ -41,7 +41,7 @@ import org.apache.jackrabbit.oak.cache.AbstractCacheStats; import org.apache.jackrabbit.oak.cache.api.Cache; import org.apache.jackrabbit.oak.cache.api.CacheBuilder; -import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.cache.api.Weigher; import org.apache.jackrabbit.oak.commons.IOUtils; import org.apache.jackrabbit.oak.commons.internal.concurrent.ExecutorHelper; @@ -87,7 +87,7 @@ public class ExtractedTextCache { private final ConcurrentHashMap timeoutMap; private final File indexDir; - private final AbstractCacheStats cacheStats; + private final CacheStats cacheStats; private final boolean alwaysUsePreExtractedCache; private volatile ExecutorService executorService; private volatile int timeoutCount; @@ -111,7 +111,7 @@ public ExtractedTextCache(long maxWeight, long expiryTimeInSecs, boolean alwaysU .expireAfterAccess(Duration.ofSeconds(expiryTimeInSecs)) .recordStats() .build(); - cacheStats = new CacheStatsAdapter(cache, "ExtractedTextCache", + cacheStats = new CacheStats(cache, "ExtractedTextCache", EmpiricalWeigher.INSTANCE, maxWeight); } else { cache = null; @@ -250,7 +250,7 @@ public int getTimeoutCount() { } @Nullable - public AbstractCacheStats getCacheStats() { + public CacheStats getCacheStats() { return cacheStats; } diff --git a/oak-segment-remote/src/main/java/org/apache/jackrabbit/oak/segment/remote/persistentcache/RemotePersistentCacheService.java b/oak-segment-remote/src/main/java/org/apache/jackrabbit/oak/segment/remote/persistentcache/RemotePersistentCacheService.java index a59ba65e817..c402c1237d0 100644 --- a/oak-segment-remote/src/main/java/org/apache/jackrabbit/oak/segment/remote/persistentcache/RemotePersistentCacheService.java +++ b/oak-segment-remote/src/main/java/org/apache/jackrabbit/oak/segment/remote/persistentcache/RemotePersistentCacheService.java @@ -20,7 +20,6 @@ import static org.apache.jackrabbit.oak.commons.IOUtils.closeQuietly; import org.apache.jackrabbit.oak.api.jmx.CacheStatsMBean; -import org.apache.jackrabbit.oak.cache.CacheStats; import org.apache.jackrabbit.oak.commons.pio.Closer; import org.apache.jackrabbit.oak.osgi.OsgiWhiteboard; import org.apache.jackrabbit.oak.segment.spi.monitor.RoleStatisticsProvider; @@ -94,7 +93,7 @@ private PersistentCache createPersistentCache(Configuration configuration, Close closer.register(persistentDiskCache); CacheStatsMBean diskCacheStatsMBean = persistentDiskCache.getCacheStats(); - registerCloseable(registerMBean(CacheStatsMBean.class, diskCacheStatsMBean, CacheStats.TYPE, diskCacheStatsMBean.getName())); + registerCloseable(registerMBean(CacheStatsMBean.class, diskCacheStatsMBean, CacheStatsMBean.TYPE, diskCacheStatsMBean.getName())); if (configuration.redisCacheEnabled()) { PersistentRedisCache redisCache = new PersistentRedisCache(configuration.redisCacheHost(), configuration.redisCachePort(), configuration.redisCacheExpireSeconds(), configuration.redisSocketTimeout(), configuration.redisConnectionTimeout(), @@ -103,7 +102,7 @@ private PersistentCache createPersistentCache(Configuration configuration, Close closer.register(redisCache); CacheStatsMBean redisCacheStatsMBean = redisCache.getCacheStats(); - registerCloseable(registerMBean(CacheStatsMBean.class, redisCacheStatsMBean, CacheStats.TYPE, redisCacheStatsMBean.getName())); + registerCloseable(registerMBean(CacheStatsMBean.class, redisCacheStatsMBean, CacheStatsMBean.TYPE, redisCacheStatsMBean.getName())); } return persistentDiskCache; @@ -113,7 +112,7 @@ private PersistentCache createPersistentCache(Configuration configuration, Close closer.register(redisCache); CacheStatsMBean redisCacheStatsMBean = redisCache.getCacheStats(); - registerCloseable(registerMBean(CacheStatsMBean.class, redisCacheStatsMBean, CacheStats.TYPE, redisCacheStatsMBean.getName())); + registerCloseable(registerMBean(CacheStatsMBean.class, redisCacheStatsMBean, CacheStatsMBean.TYPE, redisCacheStatsMBean.getName())); return redisCache; } diff --git a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/CachingSegmentReader.java b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/CachingSegmentReader.java index e887a438281..6bd79f5b38d 100644 --- a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/CachingSegmentReader.java +++ b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/CachingSegmentReader.java @@ -27,7 +27,7 @@ import org.apache.jackrabbit.oak.api.PropertyState; import org.apache.jackrabbit.oak.api.Type; -import org.apache.jackrabbit.oak.cache.AbstractCacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.plugins.memory.PropertyStates; import org.apache.jackrabbit.oak.segment.util.SafeEncode; import org.apache.jackrabbit.oak.spi.blob.BlobStore; @@ -227,12 +227,12 @@ public SegmentBlob readBlob(@NotNull RecordId id) { } @NotNull - public AbstractCacheStats getStringCacheStats() { + public CacheStats getStringCacheStats() { return stringCache.getStats(); } @NotNull - public AbstractCacheStats getTemplateCacheStats() { + public CacheStats getTemplateCacheStats() { return templateCache.getStats(); } } diff --git a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/ReaderCache.java b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/ReaderCache.java index 9d52fce3148..09177ea1852 100644 --- a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/ReaderCache.java +++ b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/ReaderCache.java @@ -25,18 +25,14 @@ import java.util.Arrays; import java.util.function.Function; -import org.apache.jackrabbit.oak.cache.api.Weigher; -import org.apache.jackrabbit.guava.common.cache.CacheStats; import org.apache.jackrabbit.oak.cache.AbstractCacheStats; import org.apache.jackrabbit.oak.cache.CacheLIRS; import org.apache.jackrabbit.oak.cache.api.Cache; -import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.cache.api.Weigher; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; - - /** * A cache consisting of a fast and slow component. The fast cache for small items is based * on an array, and a slow one uses a LIRS cache. @@ -62,7 +58,7 @@ public abstract class ReaderCache { private final Cache cache; @NotNull - private final AbstractCacheStats cacheStats; + private final CacheStats cacheStats; /** * Create a new string cache. @@ -84,11 +80,11 @@ protected ReaderCache(long maxWeight, int averageWeight, .weigher(weigher::weigh) .build() .asOakCache(); - cacheStats = new CacheStatsAdapter(cache, name, weigher, maxWeight); + cacheStats = new CacheStats(cache, name, weigher, maxWeight); } @NotNull - public AbstractCacheStats getStats() { + public CacheStats getStats() { return cacheStats; } diff --git a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/RecordCache.java b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/RecordCache.java index 61f07029358..2ca4c32253a 100644 --- a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/RecordCache.java +++ b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/RecordCache.java @@ -23,9 +23,8 @@ import java.util.concurrent.atomic.LongAdder; import java.util.function.Supplier; -import org.apache.jackrabbit.guava.common.cache.CacheStats; import org.apache.jackrabbit.oak.cache.api.CacheBuilder; -import org.apache.jackrabbit.oak.cache.api.EvictionListener; +import org.apache.jackrabbit.oak.cache.api.CacheCounters; import org.apache.jackrabbit.oak.cache.api.Weigher; import org.jetbrains.annotations.NotNull; @@ -52,7 +51,7 @@ public void put(@NotNull K key, @NotNull RecordId value, byte cost) { * @return access statistics for this cache */ @NotNull - public abstract CacheStats getStats(); + public abstract CacheCounters getStats(); /** * Factory method for creating {@code RecordCache} instances. The returned @@ -111,8 +110,8 @@ static final Supplier> emptyFactory() { } @Override - public @NotNull CacheStats getStats() { - return new CacheStats(0, missCount.sum(), 0, 0, 0, 0); + public @NotNull CacheCounters getStats() { + return new CacheCounters(0, missCount.sum(), 0, 0, 0, 0); } @Override @@ -147,10 +146,10 @@ private static class Default extends RecordCache { private final LongAdder loadCount = new LongAdder(); @Override - public @NotNull CacheStats getStats() { - org.apache.jackrabbit.oak.cache.api.CacheStatsSnapshot snapshot = cache.stats(); + public @NotNull CacheCounters getStats() { + CacheCounters snapshot = cache.stats(); // any addition to the cache counts as load by our definition - return new CacheStats(snapshot.hitCount(), snapshot.missCount(), + return new CacheCounters(snapshot.hitCount(), snapshot.missCount(), loadCount.sum(), 0, 0, snapshot.evictionCount()); } diff --git a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/RecordCacheStats.java b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/RecordCacheStats.java index b5e92fce005..3edacb07bf4 100644 --- a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/RecordCacheStats.java +++ b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/RecordCacheStats.java @@ -22,8 +22,8 @@ import java.util.function.Supplier; -import org.apache.jackrabbit.guava.common.cache.CacheStats; import org.apache.jackrabbit.oak.cache.AbstractCacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheCounters; import org.jetbrains.annotations.NotNull; /** @@ -32,7 +32,7 @@ public class RecordCacheStats extends AbstractCacheStats { @NotNull - private final Supplier stats; + private final Supplier stats; @NotNull private final Supplier elementCount; @@ -42,7 +42,7 @@ public class RecordCacheStats extends AbstractCacheStats { public RecordCacheStats( @NotNull String name, - @NotNull Supplier stats, + @NotNull Supplier stats, @NotNull Supplier elementCount, @NotNull Supplier weight) { super(name); @@ -52,7 +52,7 @@ public RecordCacheStats( } @Override - protected CacheStats getCurrentStats() { + protected CacheCounters getCurrentStats() { return stats.get(); } diff --git a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentCache.java b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentCache.java index 0f49eb119aa..70c1e9976af 100644 --- a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentCache.java +++ b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentCache.java @@ -28,10 +28,10 @@ import java.util.concurrent.atomic.AtomicLong; import java.util.function.Supplier; -import org.apache.jackrabbit.guava.common.cache.CacheStats; import org.apache.jackrabbit.oak.cache.AbstractCacheStats; import org.apache.jackrabbit.oak.cache.api.Cache; import org.apache.jackrabbit.oak.cache.api.CacheBuilder; +import org.apache.jackrabbit.oak.cache.api.CacheCounters; import org.apache.jackrabbit.oak.cache.api.EvictionCause; import org.apache.jackrabbit.oak.segment.CacheWeights.SegmentCacheWeigher; import org.jetbrains.annotations.NotNull; @@ -312,8 +312,8 @@ protected Stats(@NotNull String name, long maximumWeight, @NotNull Supplier Supplier accumulateRecordCacheStats( + private static Supplier accumulateRecordCacheStats( final Iterable> caches) { - return new Supplier() { - @Override - public CacheStats get() { - CacheStats stats = new CacheStats(0, 0, 0, 0, 0, 0); - for (RecordCache cache : caches) { - stats = stats.plus(cache.getStats()); - } - return stats; + return () -> { + long hits = 0, misses = 0, loads = 0, failures = 0, loadTime = 0, evictions = 0; + for (RecordCache cache : caches) { + CacheCounters s = cache.getStats(); + hits += s.hitCount(); + misses += s.missCount(); + loads += s.loadSuccessCount(); + failures += s.loadFailureCount(); + loadTime += s.totalLoadTime(); + evictions += s.evictionCount(); } + return new CacheCounters(hits, misses, loads, failures, loadTime, evictions); }; } @@ -399,12 +402,7 @@ public Long get() { @Override public CacheStatsMBean getNodeCacheStats() { return new RecordCacheStats("Node deduplication cache stats", - new Supplier() { - @Override - public CacheStats get() { - return nodeCache().getStats(); - } - }, + () -> nodeCache().getStats(), new Supplier() { @Override public Long get() { diff --git a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/PriorityCache.java b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/PriorityCache.java index 209d1580290..1b33202eabf 100644 --- a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/PriorityCache.java +++ b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/PriorityCache.java @@ -37,7 +37,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.apache.jackrabbit.guava.common.cache.CacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheCounters; import org.apache.jackrabbit.oak.cache.api.Weigher; /** @@ -400,8 +400,8 @@ private static String toString(AtomicInteger[] ints) { * @return access statistics for this cache */ @NotNull - public CacheStats getStats() { - return new CacheStats(hitCount.sum(), missCount.sum(), loadCount.sum(), + public CacheCounters getStats() { + return new CacheCounters(hitCount.sum(), missCount.sum(), loadCount.sum(), loadExceptionCount.sum(), 0, evictionCount.sum()); } diff --git a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/spi/persistence/persistentcache/SegmentCacheStats.java b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/spi/persistence/persistentcache/SegmentCacheStats.java index 541e31aa82c..31402818bc2 100644 --- a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/spi/persistence/persistentcache/SegmentCacheStats.java +++ b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/spi/persistence/persistentcache/SegmentCacheStats.java @@ -23,8 +23,8 @@ import java.util.concurrent.atomic.AtomicLong; import java.util.function.Supplier; -import org.apache.jackrabbit.guava.common.cache.CacheStats; import org.apache.jackrabbit.oak.cache.AbstractCacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheCounters; import org.jetbrains.annotations.NotNull; public class SegmentCacheStats extends AbstractCacheStats { @@ -67,8 +67,8 @@ public SegmentCacheStats(@NotNull String name, } @Override - protected CacheStats getCurrentStats() { - return new CacheStats( + protected CacheCounters getCurrentStats() { + return new CacheCounters( hitCount.get(), missCount.get(), loadSuccessCount.get(), diff --git a/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/PriorityCacheTest.java b/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/PriorityCacheTest.java index bfb8850ee91..2873379f6b0 100644 --- a/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/PriorityCacheTest.java +++ b/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/PriorityCacheTest.java @@ -191,7 +191,7 @@ public void loadExceptionCount() { assertEquals(0, cache.getStats().evictionCount()); assertEquals(success, cache.size()); - assertEquals(failure, cache.getStats().loadExceptionCount()); + assertEquals(failure, cache.getStats().loadFailureCount()); } } diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DiffCache.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DiffCache.java index 4b4de76757c..692e9a7d1e4 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DiffCache.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DiffCache.java @@ -17,6 +17,7 @@ package org.apache.jackrabbit.oak.plugins.document; import org.apache.jackrabbit.oak.cache.AbstractCacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.commons.json.JsopReader; import org.apache.jackrabbit.oak.commons.json.JsopTokenizer; import org.jetbrains.annotations.NotNull; @@ -69,7 +70,7 @@ abstract Entry newEntry(@NotNull RevisionVector from, * @return the statistics for this cache. */ @NotNull - abstract Iterable getStats(); + abstract Iterable getStats(); /** * Invalidates all the entries in the cache. diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java index 1078b92c6f9..eb0af92e17d 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java @@ -77,6 +77,7 @@ import org.apache.jackrabbit.oak.api.CommitFailedException; import org.apache.jackrabbit.oak.api.PropertyState; import org.apache.jackrabbit.oak.cache.AbstractCacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.commons.PerfLogger; import org.apache.jackrabbit.oak.commons.collections.IterableUtils; import org.apache.jackrabbit.oak.commons.collections.ListUtils; @@ -419,7 +420,7 @@ public final class DocumentNodeStore * Key: PathRev, value: DocumentNodeState */ private final Cache nodeCache; - private final AbstractCacheStats nodeCacheStats; + private final CacheStats nodeCacheStats; /** * Child node cache. @@ -427,7 +428,7 @@ public final class DocumentNodeStore * Key: PathRev, value: Children */ private final Cache nodeChildrenCache; - private final AbstractCacheStats nodeChildrenCacheStats; + private final CacheStats nodeChildrenCacheStats; /** * The change log to keep track of commits for diff operations. @@ -1292,16 +1293,16 @@ public ClusterNodeInfo getClusterInfo() { return clusterNodeInfo; } - public AbstractCacheStats getNodeCacheStats() { + public CacheStats getNodeCacheStats() { return nodeCacheStats; } - public AbstractCacheStats getNodeChildrenCacheStats() { + public CacheStats getNodeChildrenCacheStats() { return nodeChildrenCacheStats; } @NotNull - public Iterable getDiffCacheStats() { + public Iterable getDiffCacheStats() { return diffCache.getStats(); } diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreBuilder.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreBuilder.java index 1a744b12556..4e9653407ac 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreBuilder.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreBuilder.java @@ -38,8 +38,7 @@ import org.apache.jackrabbit.oak.cache.CacheLIRS; import org.apache.jackrabbit.oak.cache.api.Cache; import org.apache.jackrabbit.oak.cache.api.CacheBuilder; -import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; -import org.apache.jackrabbit.oak.cache.api.EvictionCause; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.cache.api.Weigher; import org.apache.jackrabbit.oak.cache.AbstractCacheStats; import org.apache.jackrabbit.oak.cache.CacheValue; @@ -1003,17 +1002,17 @@ public Cache buildPrevDocumentsCache(DocumentStore do public NodeDocumentCache buildNodeDocumentCache(DocumentStore docStore, NodeDocumentLocks locks) { Cache nodeDocumentsCache = buildDocumentCache(docStore); - AbstractCacheStats nodeDocumentsCacheStats = newCacheStatsAdapter(nodeDocumentsCache, "Document-Documents", getDocumentCacheSize()); + CacheStats nodeDocumentsCacheStats = newCacheStatsAdapter(nodeDocumentsCache, "Document-Documents", getDocumentCacheSize()); Cache prevDocumentsCache = buildPrevDocumentsCache(docStore); - AbstractCacheStats prevDocumentsCacheStats = newCacheStatsAdapter(prevDocumentsCache, "Document-PrevDocuments", getPrevDocumentCacheSize()); + CacheStats prevDocumentsCacheStats = newCacheStatsAdapter(prevDocumentsCache, "Document-PrevDocuments", getPrevDocumentCacheSize()); return new NodeDocumentCache(nodeDocumentsCache, nodeDocumentsCacheStats, prevDocumentsCache, prevDocumentsCacheStats, locks); } @SuppressWarnings({"unchecked", "rawtypes"}) - AbstractCacheStats newCacheStatsAdapter(Cache cache, String name, long maxWeight) { - return new CacheStatsAdapter((Cache) cache, name, (Weigher) weigher, maxWeight); + CacheStats newCacheStatsAdapter(Cache cache, String name, long maxWeight) { + return new CacheStats((Cache) cache, name, (Weigher) weigher, maxWeight); } /** diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreService.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreService.java index 58b78df936c..41ff6973a7a 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreService.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreService.java @@ -60,6 +60,7 @@ import org.apache.jackrabbit.oak.api.jmx.CheckpointMBean; import org.apache.jackrabbit.oak.api.jmx.PersistentCacheStatsMBean; import org.apache.jackrabbit.oak.cache.AbstractCacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.commons.pio.Closer; import org.apache.jackrabbit.oak.plugins.document.VersionGarbageCollector.VersionGCStats; import org.apache.jackrabbit.oak.plugins.document.mongo.MongoDocumentNodeStoreBuilder; @@ -878,7 +879,7 @@ private void registerJMXBeans(final DocumentNodeStore store, DocumentNodeStoreBu } DocumentStore ds = store.getDocumentStore(); if (ds.getCacheStats() != null) { - for (AbstractCacheStats cacheStats : ds.getCacheStats()) { + for (CacheStats cacheStats : ds.getCacheStats()) { registerCacheStatsMBean(cacheStats); } } diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentStore.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentStore.java index cfb42d65c0f..2bb1648c348 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentStore.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentStore.java @@ -22,7 +22,7 @@ import java.util.Set; import java.util.stream.Collectors; -import org.apache.jackrabbit.oak.cache.AbstractCacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.plugins.document.UpdateOp.Condition; import org.apache.jackrabbit.oak.plugins.document.cache.CacheInvalidationStats; import org.apache.jackrabbit.oak.plugins.document.util.Utils; @@ -431,7 +431,7 @@ T findAndUpdate(Collection collection, * @return status information about the cache */ @Nullable - Iterable getCacheStats(); + Iterable getCacheStats(); /** * @return description of the underlying storage. diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/JournalDiffLoader.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/JournalDiffLoader.java index 2da34f667d2..4dbe51dacea 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/JournalDiffLoader.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/JournalDiffLoader.java @@ -20,7 +20,7 @@ import java.util.Map; import java.util.concurrent.TimeUnit; -import org.apache.jackrabbit.oak.cache.AbstractCacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.commons.sort.StringSort; import org.apache.jackrabbit.oak.commons.time.Stopwatch; import org.apache.jackrabbit.oak.plugins.document.util.StringValue; @@ -298,7 +298,7 @@ private void trackStats(Path path, @NotNull @Override - Iterable getStats() { + Iterable getStats() { return cache.getStats(); } diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/LocalDiffCache.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/LocalDiffCache.java index da42b338ef9..2eecfa639b2 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/LocalDiffCache.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/LocalDiffCache.java @@ -20,10 +20,9 @@ import java.util.HashMap; import java.util.Map; -import org.apache.jackrabbit.oak.cache.AbstractCacheStats; import org.apache.jackrabbit.oak.cache.CacheValue; import org.apache.jackrabbit.oak.cache.api.Cache; -import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.commons.json.JsopBuilder; import org.apache.jackrabbit.oak.commons.json.JsopReader; import org.apache.jackrabbit.oak.commons.json.JsopTokenizer; @@ -46,11 +45,11 @@ public class LocalDiffCache extends DiffCache { private static int MAX_ENTRY_SIZE = 16 * 1024 * 1024; private final Cache diffCache; - private final AbstractCacheStats diffCacheStats; + private final CacheStats diffCacheStats; LocalDiffCache(DocumentNodeStoreBuilder builder) { this.diffCache = builder.buildLocalDiffCache(); - this.diffCacheStats = new CacheStatsAdapter(diffCache, + this.diffCacheStats = new CacheStats(diffCache, "Document-LocalDiff", (k, v) -> builder.getWeigher().weigh(k, v), builder.getLocalDiffCacheSize()); } @@ -108,7 +107,7 @@ private boolean exceedsSize(){ @NotNull @Override - public Iterable getStats() { + public Iterable getStats() { return Collections.singleton(diffCacheStats); } diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/MemoryDiffCache.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/MemoryDiffCache.java index 8f27d8164cc..4565075e522 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/MemoryDiffCache.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/MemoryDiffCache.java @@ -18,10 +18,9 @@ import java.util.Collections; -import org.apache.jackrabbit.oak.cache.AbstractCacheStats; import org.apache.jackrabbit.oak.cache.CacheValue; import org.apache.jackrabbit.oak.cache.api.Cache; -import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.plugins.document.util.StringValue; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -51,12 +50,12 @@ public class MemoryDiffCache extends DiffCache { * Key: PathRev, value: StringValue */ protected final Cache diffCache; - protected final AbstractCacheStats diffCacheStats; + protected final CacheStats diffCacheStats; protected MemoryDiffCache(DocumentNodeStoreBuilder builder) { diffCache = builder.buildMemoryDiffCache(); - diffCacheStats = new CacheStatsAdapter(diffCache, "Document-MemoryDiff", + diffCacheStats = new CacheStats(diffCache, "Document-MemoryDiff", (k, v) -> builder.getWeigher().weigh(k, v), builder.getMemoryDiffCacheSize()); } @@ -97,7 +96,7 @@ public Entry newEntry(@NotNull RevisionVector from, @NotNull @Override - public Iterable getStats() { + public Iterable getStats() { return Collections.singleton(diffCacheStats); } diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/TieredDiffCache.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/TieredDiffCache.java index 1d817b7a462..1cbab987399 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/TieredDiffCache.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/TieredDiffCache.java @@ -16,9 +16,9 @@ */ package org.apache.jackrabbit.oak.plugins.document; -import org.apache.jackrabbit.oak.cache.AbstractCacheStats; import org.apache.jackrabbit.oak.cache.api.Cache; import org.apache.jackrabbit.oak.cache.api.CacheBuilder; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.commons.collections.IterableUtils; import org.apache.jackrabbit.oak.plugins.document.util.RevisionsKey; import org.jetbrains.annotations.NotNull; @@ -93,7 +93,7 @@ public Entry newEntry(@NotNull RevisionVector from, @NotNull RevisionVector to, @NotNull @Override - public Iterable getStats() { + public Iterable getStats() { return IterableUtils.chainedIterable(localCache.getStats(), memoryCache.getStats()); } diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/cache/NodeDocumentCache.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/cache/NodeDocumentCache.java index 4ff05d09529..2473b759dbf 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/cache/NodeDocumentCache.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/cache/NodeDocumentCache.java @@ -32,9 +32,9 @@ import java.util.function.Function; import java.util.function.Predicate; -import org.apache.jackrabbit.oak.cache.AbstractCacheStats; import org.apache.jackrabbit.oak.cache.api.Cache; import org.apache.jackrabbit.oak.cache.CacheValue; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.commons.collections.IterableUtils; import org.apache.jackrabbit.oak.plugins.document.Document; import org.apache.jackrabbit.oak.plugins.document.NodeDocument; @@ -50,7 +50,7 @@ public class NodeDocumentCache implements Closeable { private final Cache nodeDocumentsCache; - private final AbstractCacheStats nodeDocumentsCacheStats; + private final CacheStats nodeDocumentsCacheStats; /** * The previous documents cache @@ -58,16 +58,16 @@ public class NodeDocumentCache implements Closeable { * Key: StringValue, value: NodeDocument */ private final Cache prevDocumentsCache; - private final AbstractCacheStats prevDocumentsCacheStats; + private final CacheStats prevDocumentsCacheStats; private final NodeDocumentLocks locks; private final List changeTrackers; public NodeDocumentCache(@NotNull Cache nodeDocumentsCache, - @NotNull AbstractCacheStats nodeDocumentsCacheStats, + @NotNull CacheStats nodeDocumentsCacheStats, @NotNull Cache prevDocumentsCache, - @NotNull AbstractCacheStats prevDocumentsCacheStats, + @NotNull CacheStats prevDocumentsCacheStats, @NotNull NodeDocumentLocks locks) { this.nodeDocumentsCache = nodeDocumentsCache; this.nodeDocumentsCacheStats = nodeDocumentsCacheStats; @@ -319,7 +319,7 @@ public Iterable values() { return IterableUtils.chainedIterable(nodeDocumentsCache.asMap().values(), prevDocumentsCache.asMap().values()); } - public Iterable getCacheStats() { + public Iterable getCacheStats() { return Arrays.asList(nodeDocumentsCacheStats, prevDocumentsCacheStats); } diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/memory/MemoryDocumentStore.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/memory/MemoryDocumentStore.java index b53fefe0417..d4b604796c7 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/memory/MemoryDocumentStore.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/memory/MemoryDocumentStore.java @@ -33,7 +33,7 @@ import java.util.concurrent.locks.ReentrantReadWriteLock; import java.util.stream.Collectors; -import org.apache.jackrabbit.oak.cache.AbstractCacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.commons.properties.SystemPropertySupplier; import org.apache.jackrabbit.oak.plugins.document.Collection; import org.apache.jackrabbit.oak.plugins.document.Document; @@ -444,7 +444,7 @@ public WriteConcern getWriteConcern() { } @Override - public Iterable getCacheStats() { + public Iterable getCacheStats() { return null; } diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java index a683938213c..2e3e5cb86f9 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java @@ -42,8 +42,8 @@ import java.util.stream.StreamSupport; import org.apache.commons.io.IOUtils; -import org.apache.jackrabbit.oak.cache.AbstractCacheStats; import org.apache.jackrabbit.oak.cache.CacheValue; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.commons.collections.IterableUtils; import org.apache.jackrabbit.oak.commons.collections.IteratorUtils; import org.apache.jackrabbit.oak.commons.collections.ListUtils; @@ -2085,7 +2085,7 @@ public void dispose() { } @Override - public Iterable getCacheStats() { + public Iterable getCacheStats() { return nodesCache.getCacheStats(); } diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/persistentCache/NodeCache.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/persistentCache/NodeCache.java index 2811d2cb4d7..96d82840e34 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/persistentCache/NodeCache.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/persistentCache/NodeCache.java @@ -27,7 +27,7 @@ import java.util.function.Function; import org.apache.jackrabbit.oak.cache.api.Cache; -import org.apache.jackrabbit.oak.cache.api.CacheStatsSnapshot; +import org.apache.jackrabbit.oak.cache.api.CacheCounters; import org.apache.jackrabbit.oak.cache.api.EvictionCause; import org.apache.jackrabbit.oak.cache.CacheValue; import org.apache.jackrabbit.oak.commons.collections.IterableUtils; @@ -290,7 +290,7 @@ public long estimatedSize() { } @Override - public CacheStatsSnapshot stats() { + public CacheCounters stats() { return memCache.stats(); } diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java index 621f753c3b3..3ccb652717e 100755 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java @@ -61,6 +61,7 @@ import org.apache.jackrabbit.oak.cache.AbstractCacheStats; import org.apache.jackrabbit.oak.cache.CacheValue; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.commons.collections.IteratorUtils; import org.apache.jackrabbit.oak.commons.collections.ListUtils; import org.apache.jackrabbit.oak.commons.collections.SetUtils; @@ -836,7 +837,7 @@ private T getIfCached(Collection collection, String id, } @Override - public Iterable getCacheStats() { + public Iterable getCacheStats() { return nodesCache.getCacheStats(); } diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/LeaseCheckDocumentStoreWrapper.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/LeaseCheckDocumentStoreWrapper.java index 3223c5db290..27340684185 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/LeaseCheckDocumentStoreWrapper.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/LeaseCheckDocumentStoreWrapper.java @@ -22,7 +22,7 @@ import java.util.Map; import java.util.function.Supplier; -import org.apache.jackrabbit.oak.cache.AbstractCacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.plugins.document.ClusterNodeInfo; import org.apache.jackrabbit.oak.plugins.document.Collection; import org.apache.jackrabbit.oak.plugins.document.Document; @@ -213,7 +213,7 @@ public void setReadWriteMode(String readWriteMode) { } @Override - public Iterable getCacheStats() { + public Iterable getCacheStats() { return leaseChecking(delegate::getCacheStats); } diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/LoggingDocumentStoreWrapper.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/LoggingDocumentStoreWrapper.java index 1db5af0944c..b71357aae81 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/LoggingDocumentStoreWrapper.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/LoggingDocumentStoreWrapper.java @@ -20,7 +20,7 @@ import java.util.Map; import java.util.concurrent.Callable; -import org.apache.jackrabbit.oak.cache.AbstractCacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.commons.json.JsopBuilder; import org.apache.jackrabbit.oak.plugins.document.Collection; import org.apache.jackrabbit.oak.plugins.document.Document; @@ -366,15 +366,10 @@ public void setReadWriteMode(String readWriteMode) { } @Override - public Iterable getCacheStats() { + public Iterable getCacheStats() { try { logMethod("getCacheStats"); - return logResult(new Callable>() { - @Override - public Iterable call() throws Exception { - return store.getCacheStats(); - } - }); + return logResult(store::getCacheStats); } catch (Exception e) { logException(e); throw convert(e); diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/SynchronizingDocumentStoreWrapper.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/SynchronizingDocumentStoreWrapper.java index b870da9a23e..bc9660ae6eb 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/SynchronizingDocumentStoreWrapper.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/SynchronizingDocumentStoreWrapper.java @@ -19,7 +19,7 @@ import java.util.List; import java.util.Map; -import org.apache.jackrabbit.oak.cache.AbstractCacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.plugins.document.Collection; import org.apache.jackrabbit.oak.plugins.document.Document; import org.apache.jackrabbit.oak.plugins.document.DocumentStore; @@ -154,7 +154,7 @@ public synchronized void setReadWriteMode(String readWriteMode) { } @Override - public synchronized Iterable getCacheStats() { + public synchronized Iterable getCacheStats() { return store.getCacheStats(); } diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/ThrottlingDocumentStoreWrapper.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/ThrottlingDocumentStoreWrapper.java index d1f6417fd21..3f062859527 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/ThrottlingDocumentStoreWrapper.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/ThrottlingDocumentStoreWrapper.java @@ -17,6 +17,7 @@ package org.apache.jackrabbit.oak.plugins.document.util; import org.apache.jackrabbit.oak.cache.AbstractCacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.plugins.document.Collection; import org.apache.jackrabbit.oak.plugins.document.Document; import org.apache.jackrabbit.oak.plugins.document.DocumentStore; @@ -233,7 +234,7 @@ public void setReadWriteMode(String readWriteMode) { } @Override - public Iterable getCacheStats() { + public Iterable getCacheStats() { return store.getCacheStats(); } diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/TimingDocumentStoreWrapper.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/TimingDocumentStoreWrapper.java index 4e3dbbb7083..c515d77295a 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/TimingDocumentStoreWrapper.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/TimingDocumentStoreWrapper.java @@ -25,7 +25,7 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicInteger; -import org.apache.jackrabbit.oak.cache.AbstractCacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.plugins.document.Collection; import org.apache.jackrabbit.oak.plugins.document.Document; import org.apache.jackrabbit.oak.plugins.document.DocumentStore; @@ -423,10 +423,10 @@ public void setReadWriteMode(String readWriteMode) { @Override - public Iterable getCacheStats() { + public Iterable getCacheStats() { try { long start = now(); - Iterable result = base.getCacheStats(); + Iterable result = base.getCacheStats(); updateAndLogTimes("getCacheStats", start, 0, 0); return result; } catch (Exception e) { diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/AmnesiaDiffCache.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/AmnesiaDiffCache.java index 2d69c7fb791..f6e9b1ba383 100644 --- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/AmnesiaDiffCache.java +++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/AmnesiaDiffCache.java @@ -18,7 +18,7 @@ import java.util.Collections; -import org.apache.jackrabbit.oak.cache.AbstractCacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -61,7 +61,7 @@ public boolean done() { @NotNull @Override - public Iterable getStats() { + public Iterable getStats() { return Collections.emptyList(); } diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/CountingDocumentStore.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/CountingDocumentStore.java index 6289c232520..67eb5bc1453 100644 --- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/CountingDocumentStore.java +++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/CountingDocumentStore.java @@ -21,7 +21,7 @@ import java.util.List; import java.util.Map; -import org.apache.jackrabbit.oak.cache.AbstractCacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.plugins.document.cache.CacheInvalidationStats; import org.jetbrains.annotations.NotNull; @@ -215,7 +215,7 @@ public void setReadWriteMode(String readWriteMode) { } @Override - public Iterable getCacheStats() { + public Iterable getCacheStats() { return delegate.getCacheStats(); } diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentMKBuilderTest.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentMKBuilderTest.java index 4a9295fafa9..4a6a1363acf 100644 --- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentMKBuilderTest.java +++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentMKBuilderTest.java @@ -18,7 +18,7 @@ import com.mongodb.client.MongoClient; -import org.apache.jackrabbit.oak.cache.AbstractCacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.commons.collections.IterableUtils; import org.junit.Test; import org.junit.runner.RunWith; @@ -74,11 +74,11 @@ protected DocumentMK.Builder newBuilder(MongoClient client, String dbName) throw @Test public void lazyInit() throws Exception { - Iterable cacheStats = mk.getDocumentStore().getCacheStats(); + Iterable cacheStats = mk.getDocumentStore().getCacheStats(); assertNotNull(cacheStats); assertEquals(2, IterableUtils.size(cacheStats)); - AbstractCacheStats docCacheStats = IterableUtils.get(cacheStats, 0); - AbstractCacheStats prevDocCacheStats = IterableUtils.get(cacheStats, 1); + CacheStats docCacheStats = IterableUtils.get(cacheStats, 0); + CacheStats prevDocCacheStats = IterableUtils.get(cacheStats, 1); assertEquals("Document-Documents", docCacheStats.getName()); assertEquals("Document-PrevDocuments", prevDocCacheStats.getName()); assertEquals(expectedDocCacheSize, docCacheStats.getMaxTotalWeight()); diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreBuilderTest.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreBuilderTest.java index dff4d9b7d0f..d37acf496e4 100644 --- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreBuilderTest.java +++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreBuilderTest.java @@ -64,7 +64,7 @@ public void buildNodeDocumentCacheStatsAreNonEmpty() { DocumentStore store = new MemoryDocumentStore(); NodeDocumentCache cache = DocumentNodeStoreBuilder.newDocumentNodeStoreBuilder() .buildNodeDocumentCache(store, new StripedNodeDocumentLocks()); - Iterable stats = cache.getCacheStats(); + Iterable stats = cache.getCacheStats(); Assert.assertNotNull(stats); Assert.assertTrue(stats.iterator().hasNext()); } diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreDiffTest.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreDiffTest.java index 527239c9c4b..00612485e0e 100644 --- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreDiffTest.java +++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreDiffTest.java @@ -17,7 +17,7 @@ package org.apache.jackrabbit.oak.plugins.document; import org.apache.jackrabbit.oak.api.CommitFailedException; -import org.apache.jackrabbit.oak.cache.AbstractCacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.spi.commit.CommitInfo; import org.apache.jackrabbit.oak.spi.commit.EmptyHook; import org.apache.jackrabbit.oak.spi.state.DefaultNodeStateDiff; @@ -63,14 +63,14 @@ public void diff() throws Exception { merge(store, builder); } - Iterable stats = store.getDiffCacheStats(); - for (AbstractCacheStats cs : stats) { + Iterable stats = store.getDiffCacheStats(); + for (CacheStats cs : stats) { cs.resetStats(); } // must not cause cache misses Diff.perform(before, after); - for (AbstractCacheStats cs : stats) { + for (CacheStats cs : stats) { assertEquals(0, cs.getMissCount()); } } diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentStoreWrapper.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentStoreWrapper.java index aadc7ee8cc5..da286e36e1c 100644 --- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentStoreWrapper.java +++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentStoreWrapper.java @@ -19,7 +19,7 @@ import java.util.List; import java.util.Map; -import org.apache.jackrabbit.oak.cache.AbstractCacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.plugins.document.cache.CacheInvalidationStats; import org.jetbrains.annotations.NotNull; @@ -150,7 +150,7 @@ public void setReadWriteMode(String readWriteMode) { } @Override - public Iterable getCacheStats() { + public Iterable getCacheStats() { return store.getCacheStats(); } diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/LocalDiffCacheTest.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/LocalDiffCacheTest.java index 6bf7c3bd43c..baa9e29047e 100644 --- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/LocalDiffCacheTest.java +++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/LocalDiffCacheTest.java @@ -22,7 +22,7 @@ import java.util.Map; import org.apache.jackrabbit.oak.api.CommitFailedException; -import org.apache.jackrabbit.oak.cache.AbstractCacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.plugins.document.LocalDiffCache.Diff; import org.apache.jackrabbit.oak.plugins.document.memory.MemoryDocumentStore; import org.apache.jackrabbit.oak.spi.commit.CommitInfo; @@ -56,7 +56,7 @@ public void simpleDiff() throws Exception{ o.reset(); DiffCache cache = store.getDiffCache(); - Iterable stats = cache.getStats(); + Iterable stats = cache.getStats(); NodeBuilder builder = store.getRoot().builder(); builder.child("a").child("a2").setProperty("foo", "bar"); @@ -118,24 +118,24 @@ private static DocumentMK create(DocumentStore ds, int clusterId){ .open(); } - private static long getHitCount(Iterable stats) { + private static long getHitCount(Iterable stats) { long hitCount = 0; - for (AbstractCacheStats cs : stats) { + for (CacheStats cs : stats) { hitCount += cs.getHitCount(); } return hitCount; } - private static long getMissCount(Iterable stats) { + private static long getMissCount(Iterable stats) { long missCount = 0; - for (AbstractCacheStats cs : stats) { + for (CacheStats cs : stats) { missCount += cs.getMissCount(); } return missCount; } - private static void resetStats(Iterable stats) { - for (AbstractCacheStats cs : stats) { + private static void resetStats(Iterable stats) { + for (CacheStats cs : stats) { cs.resetStats(); } } diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/MemoryDiffCacheTest.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/MemoryDiffCacheTest.java index d37ae5a3cbf..21c500b49c9 100644 --- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/MemoryDiffCacheTest.java +++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/MemoryDiffCacheTest.java @@ -18,7 +18,7 @@ import java.util.UUID; -import org.apache.jackrabbit.oak.cache.AbstractCacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.junit.Rule; import org.junit.Test; @@ -68,7 +68,7 @@ public void getStatsReturnsNonEmptyIterable() { DiffCache cache = new MemoryDiffCache(builderProvider.newBuilder() .setCacheSegmentCount(1) .memoryCacheDistribution(0, 0, 0, 99, 0)); - Iterable statsIterable = cache.getStats(); + Iterable statsIterable = cache.getStats(); assertNotNull(statsIterable); assertTrue(statsIterable.iterator().hasNext()); } diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/NodeStoreDiffTest.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/NodeStoreDiffTest.java index 3e6f1e4e063..c301d68aa38 100644 --- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/NodeStoreDiffTest.java +++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/NodeStoreDiffTest.java @@ -25,7 +25,7 @@ import java.util.Set; import org.apache.jackrabbit.oak.api.CommitFailedException; -import org.apache.jackrabbit.oak.cache.AbstractCacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.commons.PathUtils; import org.apache.jackrabbit.oak.plugins.commit.AnnotatingConflictHandler; import org.apache.jackrabbit.oak.plugins.commit.ConflictHook; @@ -228,7 +228,7 @@ public void diffBranchBase() throws Exception { private long diffCacheRequests(DocumentNodeStore ns) { long num = 0; - for (AbstractCacheStats stats : ns.getDiffCacheStats()) { + for (CacheStats stats : ns.getDiffCacheStats()) { num += stats.getRequestCount(); } return num; diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/TieredDiffCacheTest.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/TieredDiffCacheTest.java index cbb2e1ae943..1dc85336acb 100644 --- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/TieredDiffCacheTest.java +++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/TieredDiffCacheTest.java @@ -18,7 +18,7 @@ import java.lang.reflect.Field; -import org.apache.jackrabbit.oak.cache.AbstractCacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.junit.Rule; import org.junit.Test; @@ -88,7 +88,7 @@ public void newEntryExternalPopulatesMemoryCache() { @Test public void getStatsReturnsNonEmptyIterable() { TieredDiffCache cache = buildCache(); - Iterable stats = cache.getStats(); + Iterable stats = cache.getStats(); assertNotNull(stats); assertTrue(stats.iterator().hasNext()); } diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/cache/CacheChangesTrackerTest.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/cache/CacheChangesTrackerTest.java index 1702a88de3e..e3cde765105 100644 --- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/cache/CacheChangesTrackerTest.java +++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/cache/CacheChangesTrackerTest.java @@ -27,8 +27,8 @@ import org.apache.jackrabbit.oak.cache.CacheLIRS; import org.apache.jackrabbit.oak.cache.api.Cache; -import org.apache.jackrabbit.oak.cache.AbstractCacheStats; import org.apache.jackrabbit.oak.cache.CacheValue; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.plugins.document.Collection; import org.apache.jackrabbit.oak.plugins.document.DocumentStore; import org.apache.jackrabbit.oak.plugins.document.NodeDocument; @@ -153,8 +153,8 @@ public void testOnlyExternalChanges() { private NodeDocumentCache createCache() { Cache nodeDocumentsCache = (new CacheLIRS(10)).asOakCache(); Cache prevDocumentsCache = (new CacheLIRS(10)).asOakCache(); - AbstractCacheStats nodeDocumentsCacheStats = Mockito.mock(AbstractCacheStats.class); - AbstractCacheStats prevDocumentsCacheStats = Mockito.mock(AbstractCacheStats.class); + CacheStats nodeDocumentsCacheStats = Mockito.mock(CacheStats.class); + CacheStats prevDocumentsCacheStats = Mockito.mock(CacheStats.class); NodeDocumentLocks locks = new StripedNodeDocumentLocks(); return new NodeDocumentCache(nodeDocumentsCache, nodeDocumentsCacheStats, prevDocumentsCache, prevDocumentsCacheStats, locks); } diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/cache/NodeDocumentCacheTest.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/cache/NodeDocumentCacheTest.java index eafe2607a94..95ec0567a10 100644 --- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/cache/NodeDocumentCacheTest.java +++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/cache/NodeDocumentCacheTest.java @@ -16,7 +16,7 @@ */ package org.apache.jackrabbit.oak.plugins.document.cache; -import org.apache.jackrabbit.oak.cache.AbstractCacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.plugins.document.Document; import org.apache.jackrabbit.oak.plugins.document.DocumentStore; import org.apache.jackrabbit.oak.plugins.document.NodeDocument; @@ -126,7 +126,7 @@ public void invalidateRemovesDocumentFromCache() { @Test public void getCacheStatsReturnsNonEmptyIterable() { - Iterable statsIterable = cache.getCacheStats(); + Iterable statsIterable = cache.getCacheStats(); assertNotNull(statsIterable); assertTrue(statsIterable.iterator().hasNext()); } diff --git a/specs/guava-cache-removal/TASKS.md b/specs/guava-cache-removal/TASKS.md index 303b5256429..93d0fbb2bf4 100644 --- a/specs/guava-cache-removal/TASKS.md +++ b/specs/guava-cache-removal/TASKS.md @@ -20,9 +20,7 @@ This document decomposes the Oak Cache API migration plan (PLAN.md) into indepen **Remaining:** -- OAK-12157, OAK-12158 (oak-segment-tar) — not yet started -- OAK-12159 (oak-blob-plugins) — not yet started -- OAK-12161, OAK-12162 — blocked on OAK-12157, OAK-12158, OAK-12159 +- OAK-12162 — in progress on branch OAK-12161 ## Dependency Graph From 133fbfd9f90e88be797e0959de3df050018fa077 Mon Sep 17 00:00:00 2001 From: rishabhdaim Date: Thu, 16 Apr 2026 15:36:03 +0530 Subject: [PATCH 02/11] OAK-12162 : renamed cachecounters to cachestatssnapshot to reduce changeset --- .../oak/cache/AbstractCacheStats.java | 12 +++---- .../jackrabbit/oak/cache/api/Cache.java | 2 +- .../jackrabbit/oak/cache/api/CacheStats.java | 2 +- ...eCounters.java => CacheStatsSnapshot.java} | 8 ++--- .../oak/cache/api/package-info.java | 2 +- .../impl/caffeine/CaffeineCacheAdapter.java | 6 ++-- .../oak/cache/impl/lirs/LirsCacheAdapter.java | 6 ++-- .../oak/cache/api/CacheStatsTest.java | 34 +++++++++---------- .../oak/cache/impl/CacheBuilderTest.java | 4 +-- .../caffeine/CaffeineCacheAdapterTest.java | 4 +-- .../cache/impl/lirs/LirsCacheAdapterTest.java | 4 +-- .../oak/cache/impl/CacheStatsMetricsTest.java | 6 ++-- .../jackrabbit/oak/segment/RecordCache.java | 14 ++++---- .../oak/segment/RecordCacheStats.java | 8 ++--- .../jackrabbit/oak/segment/SegmentCache.java | 6 ++-- .../segment/SegmentNodeStoreRegistrar.java | 13 +++---- .../oak/segment/WriterCacheManager.java | 8 ++--- .../oak/segment/file/PriorityCache.java | 6 ++-- .../persistentcache/SegmentCacheStats.java | 6 ++-- .../persistentcache/package-info.java | 2 +- .../document/persistentCache/NodeCache.java | 4 +-- 21 files changed, 79 insertions(+), 78 deletions(-) rename oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/{CacheCounters.java => CacheStatsSnapshot.java} (95%) diff --git a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/AbstractCacheStats.java b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/AbstractCacheStats.java index 398bed559db..07fe7e09695 100644 --- a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/AbstractCacheStats.java +++ b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/AbstractCacheStats.java @@ -26,7 +26,7 @@ import java.util.concurrent.TimeUnit; import org.apache.jackrabbit.oak.api.jmx.CacheStatsMBean; -import org.apache.jackrabbit.oak.cache.api.CacheCounters; +import org.apache.jackrabbit.oak.cache.api.CacheStatsSnapshot; import org.apache.jackrabbit.oak.commons.jmx.AnnotatedStandardMBean; import org.jetbrains.annotations.NotNull; @@ -38,8 +38,8 @@ public abstract class AbstractCacheStats extends AnnotatedStandardMBean implemen @NotNull private final String name; - private CacheCounters lastSnapshot = - new CacheCounters(0, 0, 0, 0, 0, 0); + private CacheStatsSnapshot lastSnapshot = + new CacheStatsSnapshot(0, 0, 0, 0, 0, 0); /** * Create a new {@code CacheStatsMBean} for a cache with the given {@code name}. @@ -51,12 +51,12 @@ protected AbstractCacheStats(@NotNull String name) { } /** - * Call back invoked to retrieve the most recent {@link CacheCounters} of the + * Call back invoked to retrieve the most recent {@link CacheStatsSnapshot} of the * underlying cache. */ - protected abstract CacheCounters getCurrentStats(); + protected abstract CacheStatsSnapshot getCurrentStats(); - private CacheCounters stats() { + private CacheStatsSnapshot stats() { return getCurrentStats().minus(lastSnapshot); } diff --git a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/Cache.java b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/Cache.java index a26b9667f28..ed4bb976b48 100644 --- a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/Cache.java +++ b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/Cache.java @@ -115,7 +115,7 @@ public interface Cache { * @return a stats snapshot (never null) */ @NotNull - CacheCounters stats(); + CacheStatsSnapshot stats(); /** * Returns a view of the entries stored in this cache as a thread-safe map. diff --git a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/CacheStats.java b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/CacheStats.java index 03acbde1e78..14433f982d9 100644 --- a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/CacheStats.java +++ b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/CacheStats.java @@ -53,7 +53,7 @@ public CacheStats( } @Override - protected CacheCounters getCurrentStats() { + protected CacheStatsSnapshot getCurrentStats() { return cache.stats(); } diff --git a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/CacheCounters.java b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/CacheStatsSnapshot.java similarity index 95% rename from oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/CacheCounters.java rename to oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/CacheStatsSnapshot.java index 335e2ed7db2..80fbb0805e8 100644 --- a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/CacheCounters.java +++ b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/CacheStatsSnapshot.java @@ -22,7 +22,7 @@ * An immutable snapshot of cache statistics at a point in time. * *

Returned by {@link Cache#stats()}. All counters are cumulative since - * the cache was created. Use {@link #minus(CacheCounters)} to compute a delta + * the cache was created. Use {@link #minus(CacheStatsSnapshot)} to compute a delta * between two snapshots.

* * @param hitCount number of times a requested key was found in the cache @@ -32,7 +32,7 @@ * @param totalLoadTime total time spent loading new values, in nanoseconds * @param evictionCount number of entries evicted from the cache */ -public record CacheCounters( +public record CacheStatsSnapshot( long hitCount, long missCount, long loadSuccessCount, @@ -120,8 +120,8 @@ public double averageLoadPenalty() { * @return a new snapshot representing the delta */ @NotNull - public CacheCounters minus(@NotNull CacheCounters other) { - return new CacheCounters( + public CacheStatsSnapshot minus(@NotNull CacheStatsSnapshot other) { + return new CacheStatsSnapshot( Math.max(0, hitCount - other.hitCount), Math.max(0, missCount - other.missCount), Math.max(0, loadSuccessCount - other.loadSuccessCount), diff --git a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/package-info.java b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/package-info.java index 4bd384ffb3e..ce415459ccb 100644 --- a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/package-info.java +++ b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/package-info.java @@ -19,7 +19,7 @@ * For Oak internal use only. Do not use outside Oak components. */ @Internal(since = "1.0.0") -@Version("1.0.0") +@Version("2.0.0") package org.apache.jackrabbit.oak.cache.api; import org.apache.jackrabbit.oak.commons.annotations.Internal; diff --git a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/impl/caffeine/CaffeineCacheAdapter.java b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/impl/caffeine/CaffeineCacheAdapter.java index c11dfe973a3..cc11a8cd3a3 100644 --- a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/impl/caffeine/CaffeineCacheAdapter.java +++ b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/impl/caffeine/CaffeineCacheAdapter.java @@ -21,7 +21,7 @@ import java.util.function.Function; import com.github.benmanes.caffeine.cache.RemovalCause; -import org.apache.jackrabbit.oak.cache.api.CacheCounters; +import org.apache.jackrabbit.oak.cache.api.CacheStatsSnapshot; import org.apache.jackrabbit.oak.cache.api.Cache; import org.apache.jackrabbit.oak.cache.api.EvictionCause; import org.jetbrains.annotations.NotNull; @@ -74,9 +74,9 @@ public long estimatedSize() { @Override @NotNull - public CacheCounters stats() { + public CacheStatsSnapshot stats() { com.github.benmanes.caffeine.cache.stats.CacheStats s = cache.stats(); - return new CacheCounters( + return new CacheStatsSnapshot( s.hitCount(), s.missCount(), s.loadSuccessCount(), s.loadFailureCount(), s.totalLoadTime(), s.evictionCount()); diff --git a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/impl/lirs/LirsCacheAdapter.java b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/impl/lirs/LirsCacheAdapter.java index 55a2fbd79c8..02fbf7f44c9 100644 --- a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/impl/lirs/LirsCacheAdapter.java +++ b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/impl/lirs/LirsCacheAdapter.java @@ -24,7 +24,7 @@ import org.apache.jackrabbit.guava.common.cache.RemovalCause; import org.apache.jackrabbit.oak.cache.CacheLIRS; -import org.apache.jackrabbit.oak.cache.api.CacheCounters; +import org.apache.jackrabbit.oak.cache.api.CacheStatsSnapshot; import org.apache.jackrabbit.oak.cache.api.Cache; import org.apache.jackrabbit.oak.cache.api.EvictionCause; import org.jetbrains.annotations.NotNull; @@ -85,9 +85,9 @@ public long estimatedSize() { @Override @NotNull - public CacheCounters stats() { + public CacheStatsSnapshot stats() { org.apache.jackrabbit.guava.common.cache.CacheStats s = cache.stats(); - return new CacheCounters( + return new CacheStatsSnapshot( s.hitCount(), s.missCount(), s.loadSuccessCount(), s.loadExceptionCount(), s.totalLoadTime(), s.evictionCount()); diff --git a/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/api/CacheStatsTest.java b/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/api/CacheStatsTest.java index c6777086b0b..e33f80fb905 100644 --- a/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/api/CacheStatsTest.java +++ b/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/api/CacheStatsTest.java @@ -19,55 +19,55 @@ import org.junit.Assert; import org.junit.Test; -/** Tests for {@link CacheCounters}. */ +/** Tests for {@link CacheStatsSnapshot}. */ public class CacheStatsTest { - private CacheCounters stats(long hits, long misses, long loadSuccess, long loadFail, - long loadTime, long evictions) { - return new CacheCounters(hits, misses, loadSuccess, loadFail, loadTime, evictions); + private CacheStatsSnapshot stats(long hits, long misses, long loadSuccess, long loadFail, + long loadTime, long evictions) { + return new CacheStatsSnapshot(hits, misses, loadSuccess, loadFail, loadTime, evictions); } /** Verifies that {@code requestCount()} returns the sum of hits and misses. */ @Test public void requestCountIsHitsPlusMisses() { - CacheCounters s = stats(3, 7, 0, 0, 0, 0); + CacheStatsSnapshot s = stats(3, 7, 0, 0, 0, 0); Assert.assertEquals(10, s.requestCount()); } /** Verifies that {@code hitRate()} returns hits divided by total requests. */ @Test public void hitRateWithRequests() { - CacheCounters s = stats(3, 7, 0, 0, 0, 0); + CacheStatsSnapshot s = stats(3, 7, 0, 0, 0, 0); Assert.assertEquals(0.3, s.hitRate(), 0.001); } /** Verifies that {@code hitRate()} returns {@code 1.0} when no requests have been made. */ @Test public void hitRateWithNoRequestsReturnsOne() { - CacheCounters s = stats(0, 0, 0, 0, 0, 0); + CacheStatsSnapshot s = stats(0, 0, 0, 0, 0, 0); Assert.assertEquals(1.0, s.hitRate(), 0.0); } /** Verifies that {@code missRate()} returns misses divided by total requests. */ @Test public void missRateWithRequests() { - CacheCounters s = stats(3, 7, 0, 0, 0, 0); + CacheStatsSnapshot s = stats(3, 7, 0, 0, 0, 0); Assert.assertEquals(0.7, s.missRate(), 0.001); } /** Verifies that {@code missRate()} returns {@code 0.0} when no requests have been made. */ @Test public void missRateWithNoRequestsReturnsZero() { - CacheCounters s = stats(0, 0, 0, 0, 0, 0); + CacheStatsSnapshot s = stats(0, 0, 0, 0, 0, 0); Assert.assertEquals(0.0, s.missRate(), 0.0); } /** Verifies that {@code minus()} produces the correct per-field delta between two snapshots. */ @Test public void minusProducesDelta() { - CacheCounters later = stats(10, 5, 4, 1, 1000, 3); - CacheCounters earlier = stats(6, 3, 2, 0, 400, 1); - CacheCounters delta = later.minus(earlier); + CacheStatsSnapshot later = stats(10, 5, 4, 1, 1000, 3); + CacheStatsSnapshot earlier = stats(6, 3, 2, 0, 400, 1); + CacheStatsSnapshot delta = later.minus(earlier); Assert.assertEquals(4, delta.hitCount()); Assert.assertEquals(2, delta.missCount()); @@ -80,9 +80,9 @@ public void minusProducesDelta() { /** Verifies that {@code minus()} clamps negative deltas to zero when the earlier snapshot has larger values. */ @Test public void minusClampsNegativeValuesToZero() { - CacheCounters later = stats(5, 2, 1, 0, 100, 1); - CacheCounters earlier = stats(9, 3, 2, 1, 200, 2); - CacheCounters delta = later.minus(earlier); + CacheStatsSnapshot later = stats(5, 2, 1, 0, 100, 1); + CacheStatsSnapshot earlier = stats(9, 3, 2, 1, 200, 2); + CacheStatsSnapshot delta = later.minus(earlier); Assert.assertEquals(0, delta.hitCount()); Assert.assertEquals(0, delta.missCount()); @@ -95,7 +95,7 @@ public void minusClampsNegativeValuesToZero() { /** Verifies that all record accessors return the values supplied to the canonical constructor. */ @Test public void accessorsReturnConstructorValues() { - CacheCounters s = stats(1, 2, 3, 4, 5, 6); + CacheStatsSnapshot s = stats(1, 2, 3, 4, 5, 6); Assert.assertEquals(1, s.hitCount()); Assert.assertEquals(2, s.missCount()); Assert.assertEquals(3, s.loadSuccessCount()); @@ -107,7 +107,7 @@ public void accessorsReturnConstructorValues() { /** Verifies that {@code toString()} includes every field name and its value. */ @Test public void toStringContainsAllFields() { - CacheCounters s = stats(1, 2, 3, 4, 5, 6); + CacheStatsSnapshot s = stats(1, 2, 3, 4, 5, 6); String str = s.toString(); Assert.assertTrue(str.contains("hitCount=1")); Assert.assertTrue(str.contains("missCount=2")); diff --git a/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/impl/CacheBuilderTest.java b/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/impl/CacheBuilderTest.java index c48429fb362..cebc5d61362 100644 --- a/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/impl/CacheBuilderTest.java +++ b/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/impl/CacheBuilderTest.java @@ -22,7 +22,7 @@ import java.util.concurrent.atomic.AtomicReference; import org.apache.jackrabbit.oak.cache.api.Cache; -import org.apache.jackrabbit.oak.cache.api.CacheCounters; +import org.apache.jackrabbit.oak.cache.api.CacheStatsSnapshot; import org.apache.jackrabbit.oak.cache.api.LoadingCache; import org.apache.jackrabbit.oak.cache.api.EvictionCause; import org.apache.jackrabbit.oak.cache.api.CacheBuilder; @@ -172,7 +172,7 @@ public void statsReturnsCorrectHitMissCounts() { cache.getIfPresent("k"); cache.getIfPresent("missing"); - CacheCounters stats = cache.stats(); + CacheStatsSnapshot stats = cache.stats(); Assert.assertNotNull(stats); Assert.assertEquals(1, stats.hitCount()); Assert.assertEquals(1, stats.missCount()); diff --git a/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/impl/caffeine/CaffeineCacheAdapterTest.java b/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/impl/caffeine/CaffeineCacheAdapterTest.java index 1111309f9ad..cda9f1ff4da 100644 --- a/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/impl/caffeine/CaffeineCacheAdapterTest.java +++ b/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/impl/caffeine/CaffeineCacheAdapterTest.java @@ -20,7 +20,7 @@ import com.github.benmanes.caffeine.cache.Caffeine; import com.github.benmanes.caffeine.cache.RemovalCause; -import org.apache.jackrabbit.oak.cache.api.CacheCounters; +import org.apache.jackrabbit.oak.cache.api.CacheStatsSnapshot; import org.apache.jackrabbit.oak.cache.api.EvictionCause; import org.junit.Assert; import org.junit.Test; @@ -45,7 +45,7 @@ public void statsSnapshotReflectsUnderlyingCacheStats() { adapter.getIfPresent("hit"); adapter.getIfPresent("miss"); - CacheCounters stats = adapter.stats(); + CacheStatsSnapshot stats = adapter.stats(); Assert.assertEquals(1, stats.hitCount()); Assert.assertEquals(1, stats.missCount()); } diff --git a/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/impl/lirs/LirsCacheAdapterTest.java b/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/impl/lirs/LirsCacheAdapterTest.java index 16864bd7696..b231067c660 100644 --- a/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/impl/lirs/LirsCacheAdapterTest.java +++ b/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/impl/lirs/LirsCacheAdapterTest.java @@ -21,7 +21,7 @@ import org.apache.jackrabbit.guava.common.cache.RemovalCause; import org.apache.jackrabbit.oak.cache.CacheLIRS; -import org.apache.jackrabbit.oak.cache.api.CacheCounters; +import org.apache.jackrabbit.oak.cache.api.CacheStatsSnapshot; import org.apache.jackrabbit.oak.cache.api.EvictionCause; import org.junit.Assert; import org.junit.Test; @@ -51,7 +51,7 @@ public void statsSnapshotReflectsUnderlyingCacheStats() { adapter.getIfPresent("hit"); adapter.getIfPresent("miss"); - CacheCounters stats = adapter.stats(); + CacheStatsSnapshot stats = adapter.stats(); Assert.assertEquals(1, stats.hitCount()); Assert.assertEquals(1, stats.missCount()); } diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/cache/impl/CacheStatsMetricsTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/cache/impl/CacheStatsMetricsTest.java index 48c81af39c0..9a3deb4304d 100644 --- a/oak-core/src/test/java/org/apache/jackrabbit/oak/cache/impl/CacheStatsMetricsTest.java +++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/cache/impl/CacheStatsMetricsTest.java @@ -26,7 +26,7 @@ import org.apache.jackrabbit.oak.api.jmx.CacheStatsMBean; import org.apache.jackrabbit.oak.cache.AbstractCacheStats; -import org.apache.jackrabbit.oak.cache.api.CacheCounters; +import org.apache.jackrabbit.oak.cache.api.CacheStatsSnapshot; import org.jetbrains.annotations.NotNull; import org.junit.Test; @@ -95,8 +95,8 @@ private static class TestStats extends AbstractCacheStats { } @Override - protected CacheCounters getCurrentStats() { - return new CacheCounters(HIT_COUNT, MISS_COUNT, MISS_COUNT, 0, LOAD_TIME, EVICTION_COUNT); + protected CacheStatsSnapshot getCurrentStats() { + return new CacheStatsSnapshot(HIT_COUNT, MISS_COUNT, MISS_COUNT, 0, LOAD_TIME, EVICTION_COUNT); } @Override diff --git a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/RecordCache.java b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/RecordCache.java index 2ca4c32253a..76016737431 100644 --- a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/RecordCache.java +++ b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/RecordCache.java @@ -24,7 +24,7 @@ import java.util.function.Supplier; import org.apache.jackrabbit.oak.cache.api.CacheBuilder; -import org.apache.jackrabbit.oak.cache.api.CacheCounters; +import org.apache.jackrabbit.oak.cache.api.CacheStatsSnapshot; import org.apache.jackrabbit.oak.cache.api.Weigher; import org.jetbrains.annotations.NotNull; @@ -51,7 +51,7 @@ public void put(@NotNull K key, @NotNull RecordId value, byte cost) { * @return access statistics for this cache */ @NotNull - public abstract CacheCounters getStats(); + public abstract CacheStatsSnapshot getStats(); /** * Factory method for creating {@code RecordCache} instances. The returned @@ -110,8 +110,8 @@ static final Supplier> emptyFactory() { } @Override - public @NotNull CacheCounters getStats() { - return new CacheCounters(0, missCount.sum(), 0, 0, 0, 0); + public @NotNull CacheStatsSnapshot getStats() { + return new CacheStatsSnapshot(0, missCount.sum(), 0, 0, 0, 0); } @Override @@ -146,10 +146,10 @@ private static class Default extends RecordCache { private final LongAdder loadCount = new LongAdder(); @Override - public @NotNull CacheCounters getStats() { - CacheCounters snapshot = cache.stats(); + public @NotNull CacheStatsSnapshot getStats() { + CacheStatsSnapshot snapshot = cache.stats(); // any addition to the cache counts as load by our definition - return new CacheCounters(snapshot.hitCount(), snapshot.missCount(), + return new CacheStatsSnapshot(snapshot.hitCount(), snapshot.missCount(), loadCount.sum(), 0, 0, snapshot.evictionCount()); } diff --git a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/RecordCacheStats.java b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/RecordCacheStats.java index 3edacb07bf4..8ddef871521 100644 --- a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/RecordCacheStats.java +++ b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/RecordCacheStats.java @@ -23,7 +23,7 @@ import java.util.function.Supplier; import org.apache.jackrabbit.oak.cache.AbstractCacheStats; -import org.apache.jackrabbit.oak.cache.api.CacheCounters; +import org.apache.jackrabbit.oak.cache.api.CacheStatsSnapshot; import org.jetbrains.annotations.NotNull; /** @@ -32,7 +32,7 @@ public class RecordCacheStats extends AbstractCacheStats { @NotNull - private final Supplier stats; + private final Supplier stats; @NotNull private final Supplier elementCount; @@ -42,7 +42,7 @@ public class RecordCacheStats extends AbstractCacheStats { public RecordCacheStats( @NotNull String name, - @NotNull Supplier stats, + @NotNull Supplier stats, @NotNull Supplier elementCount, @NotNull Supplier weight) { super(name); @@ -52,7 +52,7 @@ public RecordCacheStats( } @Override - protected CacheCounters getCurrentStats() { + protected CacheStatsSnapshot getCurrentStats() { return stats.get(); } diff --git a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentCache.java b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentCache.java index 70c1e9976af..57540613380 100644 --- a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentCache.java +++ b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentCache.java @@ -31,7 +31,7 @@ import org.apache.jackrabbit.oak.cache.AbstractCacheStats; import org.apache.jackrabbit.oak.cache.api.Cache; import org.apache.jackrabbit.oak.cache.api.CacheBuilder; -import org.apache.jackrabbit.oak.cache.api.CacheCounters; +import org.apache.jackrabbit.oak.cache.api.CacheStatsSnapshot; import org.apache.jackrabbit.oak.cache.api.EvictionCause; import org.apache.jackrabbit.oak.segment.CacheWeights.SegmentCacheWeigher; import org.jetbrains.annotations.NotNull; @@ -312,8 +312,8 @@ protected Stats(@NotNull String name, long maximumWeight, @NotNull Supplier Supplier accumulateRecordCacheStats( + private static Supplier accumulateRecordCacheStats( final Iterable> caches) { return () -> { long hits = 0, misses = 0, loads = 0, failures = 0, loadTime = 0, evictions = 0; for (RecordCache cache : caches) { - CacheCounters s = cache.getStats(); + CacheStatsSnapshot s = cache.getStats(); hits += s.hitCount(); misses += s.missCount(); loads += s.loadSuccessCount(); @@ -364,7 +364,7 @@ private static Supplier accumulateRecordCacheStats( loadTime += s.totalLoadTime(); evictions += s.evictionCount(); } - return new CacheCounters(hits, misses, loads, failures, loadTime, evictions); + return new CacheStatsSnapshot(hits, misses, loads, failures, loadTime, evictions); }; } diff --git a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/PriorityCache.java b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/PriorityCache.java index 1b33202eabf..58dc75f6c37 100644 --- a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/PriorityCache.java +++ b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/PriorityCache.java @@ -37,7 +37,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.apache.jackrabbit.oak.cache.api.CacheCounters; +import org.apache.jackrabbit.oak.cache.api.CacheStatsSnapshot; import org.apache.jackrabbit.oak.cache.api.Weigher; /** @@ -400,8 +400,8 @@ private static String toString(AtomicInteger[] ints) { * @return access statistics for this cache */ @NotNull - public CacheCounters getStats() { - return new CacheCounters(hitCount.sum(), missCount.sum(), loadCount.sum(), + public CacheStatsSnapshot getStats() { + return new CacheStatsSnapshot(hitCount.sum(), missCount.sum(), loadCount.sum(), loadExceptionCount.sum(), 0, evictionCount.sum()); } diff --git a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/spi/persistence/persistentcache/SegmentCacheStats.java b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/spi/persistence/persistentcache/SegmentCacheStats.java index 31402818bc2..49aec4196ed 100644 --- a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/spi/persistence/persistentcache/SegmentCacheStats.java +++ b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/spi/persistence/persistentcache/SegmentCacheStats.java @@ -24,7 +24,7 @@ import java.util.function.Supplier; import org.apache.jackrabbit.oak.cache.AbstractCacheStats; -import org.apache.jackrabbit.oak.cache.api.CacheCounters; +import org.apache.jackrabbit.oak.cache.api.CacheStatsSnapshot; import org.jetbrains.annotations.NotNull; public class SegmentCacheStats extends AbstractCacheStats { @@ -67,8 +67,8 @@ public SegmentCacheStats(@NotNull String name, } @Override - protected CacheCounters getCurrentStats() { - return new CacheCounters( + protected CacheStatsSnapshot getCurrentStats() { + return new CacheStatsSnapshot( hitCount.get(), missCount.get(), loadSuccessCount.get(), diff --git a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/spi/persistence/persistentcache/package-info.java b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/spi/persistence/persistentcache/package-info.java index 0ad0171f1b9..96eb50916cf 100644 --- a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/spi/persistence/persistentcache/package-info.java +++ b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/spi/persistence/persistentcache/package-info.java @@ -15,7 +15,7 @@ * limitations under the License. */ @Internal(since = "1.0.0") -@Version("6.1.0") +@Version("7.0.0") package org.apache.jackrabbit.oak.segment.spi.persistence.persistentcache; import org.apache.jackrabbit.oak.commons.annotations.Internal; diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/persistentCache/NodeCache.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/persistentCache/NodeCache.java index 96d82840e34..2811d2cb4d7 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/persistentCache/NodeCache.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/persistentCache/NodeCache.java @@ -27,7 +27,7 @@ import java.util.function.Function; import org.apache.jackrabbit.oak.cache.api.Cache; -import org.apache.jackrabbit.oak.cache.api.CacheCounters; +import org.apache.jackrabbit.oak.cache.api.CacheStatsSnapshot; import org.apache.jackrabbit.oak.cache.api.EvictionCause; import org.apache.jackrabbit.oak.cache.CacheValue; import org.apache.jackrabbit.oak.commons.collections.IterableUtils; @@ -290,7 +290,7 @@ public long estimatedSize() { } @Override - public CacheCounters stats() { + public CacheStatsSnapshot stats() { return memCache.stats(); } From b3f661d7eb0724708eba0ad3bf3f0e8327860df9 Mon Sep 17 00:00:00 2001 From: rishabhdaim Date: Thu, 16 Apr 2026 15:38:31 +0530 Subject: [PATCH 03/11] OAK-12162 : renamed cachestats to CacheStatsAdapter --- .../oak/plugins/blob/CachingBlobStore.java | 8 ++++---- .../jackrabbit/oak/plugins/blob/FileCache.java | 4 ++-- .../blob/datastore/DataStoreBlobStore.java | 9 ++++----- .../{CacheStats.java => CacheStatsAdapter.java} | 4 ++-- .../oak/cache/AbstractCacheStatsTest.java | 8 ++++---- ...StatsTest.java => CacheStatsAdapterTest.java} | 2 +- .../oak/cache/impl/CacheBuilderTest.java | 4 ++-- .../index/lucene/LuceneIndexProviderService.java | 4 ++-- .../document/DocumentStoreIndexerBase.java | 4 ++-- .../plugins/index/search/ExtractedTextCache.java | 9 ++++----- .../oak/segment/CachingSegmentReader.java | 6 +++--- .../jackrabbit/oak/segment/ReaderCache.java | 9 ++++----- .../oak/segment/SegmentNodeStoreRegistrar.java | 14 +++++++------- .../oak/plugins/document/DiffCache.java | 5 ++--- .../oak/plugins/document/DocumentNodeStore.java | 13 ++++++------- .../document/DocumentNodeStoreBuilder.java | 10 +++++----- .../document/DocumentNodeStoreService.java | 4 ++-- .../oak/plugins/document/DocumentStore.java | 4 ++-- .../oak/plugins/document/JournalDiffLoader.java | 4 ++-- .../oak/plugins/document/LocalDiffCache.java | 8 ++++---- .../oak/plugins/document/MemoryDiffCache.java | 8 ++++---- .../oak/plugins/document/TieredDiffCache.java | 4 ++-- .../document/cache/NodeDocumentCache.java | 12 ++++++------ .../document/memory/MemoryDocumentStore.java | 4 ++-- .../document/mongo/MongoDocumentStore.java | 4 ++-- .../plugins/document/rdb/RDBDocumentStore.java | 5 ++--- .../util/LeaseCheckDocumentStoreWrapper.java | 4 ++-- .../util/LoggingDocumentStoreWrapper.java | 4 ++-- .../util/SynchronizingDocumentStoreWrapper.java | 4 ++-- .../util/ThrottlingDocumentStoreWrapper.java | 5 ++--- .../util/TimingDocumentStoreWrapper.java | 6 +++--- .../oak/plugins/document/AmnesiaDiffCache.java | 4 ++-- .../plugins/document/CountingDocumentStore.java | 4 ++-- .../plugins/document/DocumentMKBuilderTest.java | 8 ++++---- .../document/DocumentNodeStoreBuilderTest.java | 2 +- .../document/DocumentNodeStoreDiffTest.java | 8 ++++---- .../plugins/document/DocumentStoreWrapper.java | 4 ++-- .../oak/plugins/document/LocalDiffCacheTest.java | 16 ++++++++-------- .../plugins/document/MemoryDiffCacheTest.java | 4 ++-- .../oak/plugins/document/NodeStoreDiffTest.java | 4 ++-- .../plugins/document/TieredDiffCacheTest.java | 4 ++-- .../document/cache/CacheChangesTrackerTest.java | 6 +++--- .../document/cache/NodeDocumentCacheTest.java | 4 ++-- 43 files changed, 127 insertions(+), 134 deletions(-) rename oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/{CacheStats.java => CacheStatsAdapter.java} (96%) rename oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/api/{CacheStatsTest.java => CacheStatsAdapterTest.java} (99%) diff --git a/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/CachingBlobStore.java b/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/CachingBlobStore.java index 3bbd16fb32b..46a6939a531 100644 --- a/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/CachingBlobStore.java +++ b/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/CachingBlobStore.java @@ -17,7 +17,7 @@ package org.apache.jackrabbit.oak.plugins.blob; import org.apache.jackrabbit.oak.cache.CacheLIRS; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; import org.apache.jackrabbit.oak.cache.api.LoadingCache; import org.apache.jackrabbit.oak.cache.api.Weigher; import org.apache.jackrabbit.oak.commons.StringUtils; @@ -47,7 +47,7 @@ public abstract class CachingBlobStore extends AbstractBlobStore { return (int) weight; }; - private final CacheStats cacheStats; + private final CacheStatsAdapter cacheStats; public static final String MEM_CACHE_NAME = "BlobStore-MemCache"; @@ -61,7 +61,7 @@ public CachingBlobStore(long cacheSize) { weigher(weigher::weigh). build().asOakCache(); - cacheStats = new CacheStats(cache, MEM_CACHE_NAME, weigher, cacheSize); + cacheStats = new CacheStatsAdapter(cache, MEM_CACHE_NAME, weigher, cacheSize); } public CachingBlobStore() { @@ -78,7 +78,7 @@ public long getBlobCacheSize() { return blobCacheSize; } - public CacheStats getCacheStats() { + public CacheStatsAdapter getCacheStats() { return cacheStats; } } diff --git a/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/FileCache.java b/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/FileCache.java index 8c34d663bb7..94fa0bfed61 100644 --- a/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/FileCache.java +++ b/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/FileCache.java @@ -39,7 +39,7 @@ import org.apache.jackrabbit.oak.cache.CacheLIRS; import org.apache.jackrabbit.oak.cache.api.Cache; import org.apache.jackrabbit.oak.cache.api.CacheLoader; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; import org.apache.jackrabbit.oak.cache.api.Weigher; import org.apache.jackrabbit.oak.commons.StringUtils; import org.apache.jackrabbit.oak.commons.concurrent.ExecutorCloser; @@ -423,7 +423,7 @@ private int build() { } } -class FileCacheStats extends CacheStats implements DataStoreCacheStatsMBean { +class FileCacheStats extends CacheStatsAdapter implements DataStoreCacheStatsMBean { private static final long BLOCK_SIZE = 4 * 1024; private final Weigher weigher; private final Cache cache; diff --git a/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/datastore/DataStoreBlobStore.java b/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/datastore/DataStoreBlobStore.java index cd4f62eb207..9a34a3fdda7 100644 --- a/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/datastore/DataStoreBlobStore.java +++ b/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/datastore/DataStoreBlobStore.java @@ -52,9 +52,8 @@ import org.apache.jackrabbit.oak.api.blob.BlobDownloadOptions; import org.apache.jackrabbit.oak.api.blob.BlobUpload; import org.apache.jackrabbit.oak.api.blob.BlobUploadOptions; -import org.apache.jackrabbit.oak.cache.AbstractCacheStats; import org.apache.jackrabbit.oak.cache.api.Cache; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; import org.apache.jackrabbit.oak.cache.api.Weigher; import org.apache.jackrabbit.oak.commons.StringUtils; import org.apache.jackrabbit.oak.commons.collections.IteratorUtils; @@ -133,7 +132,7 @@ public int weigh(@NotNull String key, @NotNull byte[] value) { } }; - private final CacheStats cacheStats; + private final CacheStatsAdapter cacheStats; public static final String MEM_CACHE_NAME = "BlobStore-MemCache"; @@ -158,7 +157,7 @@ public DataStoreBlobStore(DataStore delegate, boolean encodeLengthInId, int cach .maximumWeight(cacheSize) .weigher(weigher::weigh) .build().asOakCache(); - this.cacheStats = new CacheStats(cache, MEM_CACHE_NAME, weigher, cacheSize); + this.cacheStats = new CacheStatsAdapter(cache, MEM_CACHE_NAME, weigher, cacheSize); } //~----------------------------------< DataStore > @@ -827,7 +826,7 @@ public DataStore getDataStore() { return delegate; } - public CacheStats getCacheStats() { + public CacheStatsAdapter getCacheStats() { return cacheStats; } diff --git a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/CacheStats.java b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/CacheStatsAdapter.java similarity index 96% rename from oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/CacheStats.java rename to oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/CacheStatsAdapter.java index 14433f982d9..760359c0709 100644 --- a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/CacheStats.java +++ b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/CacheStatsAdapter.java @@ -26,7 +26,7 @@ * Exposes a {@link Cache}'s statistics via the {@link org.apache.jackrabbit.oak.api.jmx.CacheStatsMBean} * interface. */ -public class CacheStats extends AbstractCacheStats { +public class CacheStatsAdapter extends AbstractCacheStats { private final Cache cache; private final Weigher weigher; @@ -41,7 +41,7 @@ public class CacheStats extends AbstractCacheStats { * @param maxWeight configured maximum weight for the cache; {@code -1} if unbounded */ @SuppressWarnings("unchecked") - public CacheStats( + public CacheStatsAdapter( @NotNull Cache cache, @NotNull String name, @Nullable Weigher weigher, diff --git a/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/AbstractCacheStatsTest.java b/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/AbstractCacheStatsTest.java index 7a4c92a38ff..f48d04b7fc0 100644 --- a/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/AbstractCacheStatsTest.java +++ b/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/AbstractCacheStatsTest.java @@ -18,7 +18,7 @@ import java.util.concurrent.ExecutionException; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; import org.junit.Assert; import org.junit.Before; import org.junit.Test; @@ -34,12 +34,12 @@ public class AbstractCacheStatsTest { private static final long MAX_WEIGHT = 1000; private CacheLIRS cache; - private CacheStats stats; + private CacheStatsAdapter stats; @Before public void setUp() { cache = new CacheLIRS<>(null, MAX_WEIGHT, 1, 1, 0, null, null, null); - stats = new CacheStats(cache.asOakCache(), CACHE_NAME, null, MAX_WEIGHT); + stats = new CacheStatsAdapter(cache.asOakCache(), CACHE_NAME, null, MAX_WEIGHT); } @Test @@ -96,7 +96,7 @@ public void evictionCountIncreasesAfterCapacityEviction() { CacheLIRS smallCache = CacheLIRS.newBuilder() .maximumSize(5) .build(); - CacheStats smallStats = new CacheStats(smallCache.asOakCache(), "small", null, 5); + CacheStatsAdapter smallStats = new CacheStatsAdapter(smallCache.asOakCache(), "small", null, 5); for (int i = 0; i < 30; i++) { smallCache.put("k" + i, "v" + i); } diff --git a/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/api/CacheStatsTest.java b/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/api/CacheStatsAdapterTest.java similarity index 99% rename from oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/api/CacheStatsTest.java rename to oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/api/CacheStatsAdapterTest.java index e33f80fb905..1811dba0cba 100644 --- a/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/api/CacheStatsTest.java +++ b/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/api/CacheStatsAdapterTest.java @@ -20,7 +20,7 @@ import org.junit.Test; /** Tests for {@link CacheStatsSnapshot}. */ -public class CacheStatsTest { +public class CacheStatsAdapterTest { private CacheStatsSnapshot stats(long hits, long misses, long loadSuccess, long loadFail, long loadTime, long evictions) { diff --git a/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/impl/CacheBuilderTest.java b/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/impl/CacheBuilderTest.java index cebc5d61362..e0fd02f39cf 100644 --- a/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/impl/CacheBuilderTest.java +++ b/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/impl/CacheBuilderTest.java @@ -26,7 +26,7 @@ import org.apache.jackrabbit.oak.cache.api.LoadingCache; import org.apache.jackrabbit.oak.cache.api.EvictionCause; import org.apache.jackrabbit.oak.cache.api.CacheBuilder; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; import org.apache.jackrabbit.oak.cache.impl.caffeine.CaffeineCacheAdapter; import org.apache.jackrabbit.oak.cache.impl.caffeine.CaffeineLoadingCacheAdapter; import org.junit.Assert; @@ -239,7 +239,7 @@ public void oakCacheStatsAdapterBridgesOakStats() { .weigher((k, v) -> k.length() + v.length()) .recordStats() .build(); - CacheStats stats = new CacheStats( + CacheStatsAdapter stats = new CacheStatsAdapter( cache, "testCache", (k, v) -> k.length() + v.length(), 100); cache.put("aa", "bbb"); diff --git a/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexProviderService.java b/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexProviderService.java index 33931448797..029c58c313c 100644 --- a/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexProviderService.java +++ b/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexProviderService.java @@ -34,7 +34,7 @@ import org.apache.commons.io.FilenameUtils; import org.apache.jackrabbit.oak.api.jmx.CacheStatsMBean; import org.apache.jackrabbit.oak.api.jmx.CheckpointMBean; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; import org.apache.jackrabbit.oak.commons.internal.concurrent.ExecutorHelper; import org.apache.jackrabbit.oak.osgi.OsgiWhiteboard; import org.apache.jackrabbit.oak.plugins.document.spi.JournalPropertyService; @@ -686,7 +686,7 @@ private void initializeExtractedTextCache(BundleContext bundleContext, Configura if (extractedTextProvider != null){ registerExtractedTextProvider(extractedTextProvider); } - CacheStats stats = extractedTextCache.getCacheStats(); + CacheStatsAdapter stats = extractedTextCache.getCacheStats(); if (stats != null){ oakRegs.add(registerMBean(whiteboard, CacheStatsMBean.class, stats, diff --git a/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/DocumentStoreIndexerBase.java b/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/DocumentStoreIndexerBase.java index 096612305c0..e5cb1a18b9b 100644 --- a/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/DocumentStoreIndexerBase.java +++ b/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/DocumentStoreIndexerBase.java @@ -21,7 +21,7 @@ import com.codahale.metrics.MetricRegistry; import com.mongodb.ConnectionString; import org.apache.jackrabbit.oak.api.CommitFailedException; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; import org.apache.jackrabbit.oak.commons.PathUtils; import org.apache.jackrabbit.oak.commons.concurrent.ExecutorCloser; import org.apache.jackrabbit.oak.commons.pio.Closer; @@ -407,7 +407,7 @@ public void reindex() throws CommitFailedException, IOException { } } ExtractedTextCache extractedTextCache = indexerProvider.getTextCache(); - CacheStats cacheStats = extractedTextCache == null ? null : extractedTextCache.getCacheStats(); + CacheStatsAdapter cacheStats = extractedTextCache == null ? null : extractedTextCache.getCacheStats(); log.info("Text extraction cache statistics: {}", cacheStats == null ? "N/A" : cacheStats.cacheInfoAsString()); progressReporter.reindexingTraversalEnd(); diff --git a/oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/ExtractedTextCache.java b/oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/ExtractedTextCache.java index aae11ea72a6..ee3489f0184 100644 --- a/oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/ExtractedTextCache.java +++ b/oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/ExtractedTextCache.java @@ -38,10 +38,9 @@ import java.util.concurrent.TimeoutException; import org.apache.jackrabbit.oak.api.Blob; -import org.apache.jackrabbit.oak.cache.AbstractCacheStats; import org.apache.jackrabbit.oak.cache.api.Cache; import org.apache.jackrabbit.oak.cache.api.CacheBuilder; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; import org.apache.jackrabbit.oak.cache.api.Weigher; import org.apache.jackrabbit.oak.commons.IOUtils; import org.apache.jackrabbit.oak.commons.internal.concurrent.ExecutorHelper; @@ -87,7 +86,7 @@ public class ExtractedTextCache { private final ConcurrentHashMap timeoutMap; private final File indexDir; - private final CacheStats cacheStats; + private final CacheStatsAdapter cacheStats; private final boolean alwaysUsePreExtractedCache; private volatile ExecutorService executorService; private volatile int timeoutCount; @@ -111,7 +110,7 @@ public ExtractedTextCache(long maxWeight, long expiryTimeInSecs, boolean alwaysU .expireAfterAccess(Duration.ofSeconds(expiryTimeInSecs)) .recordStats() .build(); - cacheStats = new CacheStats(cache, "ExtractedTextCache", + cacheStats = new CacheStatsAdapter(cache, "ExtractedTextCache", EmpiricalWeigher.INSTANCE, maxWeight); } else { cache = null; @@ -250,7 +249,7 @@ public int getTimeoutCount() { } @Nullable - public CacheStats getCacheStats() { + public CacheStatsAdapter getCacheStats() { return cacheStats; } diff --git a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/CachingSegmentReader.java b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/CachingSegmentReader.java index 6bd79f5b38d..c6b83ddf429 100644 --- a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/CachingSegmentReader.java +++ b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/CachingSegmentReader.java @@ -27,7 +27,7 @@ import org.apache.jackrabbit.oak.api.PropertyState; import org.apache.jackrabbit.oak.api.Type; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; import org.apache.jackrabbit.oak.plugins.memory.PropertyStates; import org.apache.jackrabbit.oak.segment.util.SafeEncode; import org.apache.jackrabbit.oak.spi.blob.BlobStore; @@ -227,12 +227,12 @@ public SegmentBlob readBlob(@NotNull RecordId id) { } @NotNull - public CacheStats getStringCacheStats() { + public CacheStatsAdapter getStringCacheStats() { return stringCache.getStats(); } @NotNull - public CacheStats getTemplateCacheStats() { + public CacheStatsAdapter getTemplateCacheStats() { return templateCache.getStats(); } } diff --git a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/ReaderCache.java b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/ReaderCache.java index 09177ea1852..36c3fa34872 100644 --- a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/ReaderCache.java +++ b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/ReaderCache.java @@ -25,10 +25,9 @@ import java.util.Arrays; import java.util.function.Function; -import org.apache.jackrabbit.oak.cache.AbstractCacheStats; import org.apache.jackrabbit.oak.cache.CacheLIRS; import org.apache.jackrabbit.oak.cache.api.Cache; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; import org.apache.jackrabbit.oak.cache.api.Weigher; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -58,7 +57,7 @@ public abstract class ReaderCache { private final Cache cache; @NotNull - private final CacheStats cacheStats; + private final CacheStatsAdapter cacheStats; /** * Create a new string cache. @@ -80,11 +79,11 @@ protected ReaderCache(long maxWeight, int averageWeight, .weigher(weigher::weigh) .build() .asOakCache(); - cacheStats = new CacheStats(cache, name, weigher, maxWeight); + cacheStats = new CacheStatsAdapter(cache, name, weigher, maxWeight); } @NotNull - public CacheStats getStats() { + public CacheStatsAdapter getStats() { return cacheStats; } diff --git a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreRegistrar.java b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreRegistrar.java index acbcb1fb46e..a1319d9b680 100644 --- a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreRegistrar.java +++ b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreRegistrar.java @@ -30,7 +30,7 @@ import org.apache.jackrabbit.oak.api.jmx.CheckpointMBean; import org.apache.jackrabbit.oak.api.jmx.FileStoreBackupRestoreMBean; import org.apache.jackrabbit.oak.backup.impl.FileStoreBackupRestoreImpl; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; import org.apache.jackrabbit.oak.commons.pio.Closer; import org.apache.jackrabbit.oak.plugins.blob.BlobGC; import org.apache.jackrabbit.oak.plugins.blob.BlobGCMBean; @@ -287,7 +287,7 @@ private SegmentNodeStore register() throws IOException { registerCloseable(registerMBean( CacheStatsMBean.class, segmentCacheStats, - CacheStats.TYPE, + CacheStatsAdapter.TYPE, segmentCacheStats.getName() )); @@ -297,7 +297,7 @@ private SegmentNodeStore register() throws IOException { registerCloseable(registerMBean( CacheStatsMBean.class, stringCacheStats, - CacheStats.TYPE, + CacheStatsAdapter.TYPE, stringCacheStats.getName() )); @@ -305,7 +305,7 @@ private SegmentNodeStore register() throws IOException { registerCloseable(registerMBean( CacheStatsMBean.class, templateCacheStats, - CacheStats.TYPE, + CacheStatsAdapter.TYPE, templateCacheStats.getName() )); @@ -315,7 +315,7 @@ private SegmentNodeStore register() throws IOException { registerCloseable(registerMBean( CacheStatsMBean.class, stringDeduplicationCacheStats, - CacheStats.TYPE, + CacheStatsAdapter.TYPE, stringDeduplicationCacheStats.getName() )); } @@ -325,7 +325,7 @@ private SegmentNodeStore register() throws IOException { registerCloseable(registerMBean( CacheStatsMBean.class, templateDeduplicationCacheStats, - CacheStats.TYPE, + CacheStatsAdapter.TYPE, templateDeduplicationCacheStats.getName() )); } @@ -335,7 +335,7 @@ private SegmentNodeStore register() throws IOException { registerCloseable(registerMBean( CacheStatsMBean.class, nodeDeduplicationCacheStats, - CacheStats.TYPE, + CacheStatsAdapter.TYPE, nodeDeduplicationCacheStats.getName() )); } diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DiffCache.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DiffCache.java index 692e9a7d1e4..9668441b239 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DiffCache.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DiffCache.java @@ -16,8 +16,7 @@ */ package org.apache.jackrabbit.oak.plugins.document; -import org.apache.jackrabbit.oak.cache.AbstractCacheStats; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; import org.apache.jackrabbit.oak.commons.json.JsopReader; import org.apache.jackrabbit.oak.commons.json.JsopTokenizer; import org.jetbrains.annotations.NotNull; @@ -70,7 +69,7 @@ abstract Entry newEntry(@NotNull RevisionVector from, * @return the statistics for this cache. */ @NotNull - abstract Iterable getStats(); + abstract Iterable getStats(); /** * Invalidates all the entries in the cache. diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java index eb0af92e17d..2d612da8379 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java @@ -76,8 +76,7 @@ import org.apache.jackrabbit.oak.api.Blob; import org.apache.jackrabbit.oak.api.CommitFailedException; import org.apache.jackrabbit.oak.api.PropertyState; -import org.apache.jackrabbit.oak.cache.AbstractCacheStats; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; import org.apache.jackrabbit.oak.commons.PerfLogger; import org.apache.jackrabbit.oak.commons.collections.IterableUtils; import org.apache.jackrabbit.oak.commons.collections.ListUtils; @@ -420,7 +419,7 @@ public final class DocumentNodeStore * Key: PathRev, value: DocumentNodeState */ private final Cache nodeCache; - private final CacheStats nodeCacheStats; + private final CacheStatsAdapter nodeCacheStats; /** * Child node cache. @@ -428,7 +427,7 @@ public final class DocumentNodeStore * Key: PathRev, value: Children */ private final Cache nodeChildrenCache; - private final CacheStats nodeChildrenCacheStats; + private final CacheStatsAdapter nodeChildrenCacheStats; /** * The change log to keep track of commits for diff operations. @@ -1293,16 +1292,16 @@ public ClusterNodeInfo getClusterInfo() { return clusterNodeInfo; } - public CacheStats getNodeCacheStats() { + public CacheStatsAdapter getNodeCacheStats() { return nodeCacheStats; } - public CacheStats getNodeChildrenCacheStats() { + public CacheStatsAdapter getNodeChildrenCacheStats() { return nodeChildrenCacheStats; } @NotNull - public Iterable getDiffCacheStats() { + public Iterable getDiffCacheStats() { return diffCache.getStats(); } diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreBuilder.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreBuilder.java index 4e9653407ac..b8684068c60 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreBuilder.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreBuilder.java @@ -38,7 +38,7 @@ import org.apache.jackrabbit.oak.cache.CacheLIRS; import org.apache.jackrabbit.oak.cache.api.Cache; import org.apache.jackrabbit.oak.cache.api.CacheBuilder; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; import org.apache.jackrabbit.oak.cache.api.Weigher; import org.apache.jackrabbit.oak.cache.AbstractCacheStats; import org.apache.jackrabbit.oak.cache.CacheValue; @@ -1002,17 +1002,17 @@ public Cache buildPrevDocumentsCache(DocumentStore do public NodeDocumentCache buildNodeDocumentCache(DocumentStore docStore, NodeDocumentLocks locks) { Cache nodeDocumentsCache = buildDocumentCache(docStore); - CacheStats nodeDocumentsCacheStats = newCacheStatsAdapter(nodeDocumentsCache, "Document-Documents", getDocumentCacheSize()); + CacheStatsAdapter nodeDocumentsCacheStats = newCacheStatsAdapter(nodeDocumentsCache, "Document-Documents", getDocumentCacheSize()); Cache prevDocumentsCache = buildPrevDocumentsCache(docStore); - CacheStats prevDocumentsCacheStats = newCacheStatsAdapter(prevDocumentsCache, "Document-PrevDocuments", getPrevDocumentCacheSize()); + CacheStatsAdapter prevDocumentsCacheStats = newCacheStatsAdapter(prevDocumentsCache, "Document-PrevDocuments", getPrevDocumentCacheSize()); return new NodeDocumentCache(nodeDocumentsCache, nodeDocumentsCacheStats, prevDocumentsCache, prevDocumentsCacheStats, locks); } @SuppressWarnings({"unchecked", "rawtypes"}) - CacheStats newCacheStatsAdapter(Cache cache, String name, long maxWeight) { - return new CacheStats((Cache) cache, name, (Weigher) weigher, maxWeight); + CacheStatsAdapter newCacheStatsAdapter(Cache cache, String name, long maxWeight) { + return new CacheStatsAdapter((Cache) cache, name, (Weigher) weigher, maxWeight); } /** diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreService.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreService.java index 41ff6973a7a..3c1b2b37f46 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreService.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreService.java @@ -60,7 +60,7 @@ import org.apache.jackrabbit.oak.api.jmx.CheckpointMBean; import org.apache.jackrabbit.oak.api.jmx.PersistentCacheStatsMBean; import org.apache.jackrabbit.oak.cache.AbstractCacheStats; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; import org.apache.jackrabbit.oak.commons.pio.Closer; import org.apache.jackrabbit.oak.plugins.document.VersionGarbageCollector.VersionGCStats; import org.apache.jackrabbit.oak.plugins.document.mongo.MongoDocumentNodeStoreBuilder; @@ -879,7 +879,7 @@ private void registerJMXBeans(final DocumentNodeStore store, DocumentNodeStoreBu } DocumentStore ds = store.getDocumentStore(); if (ds.getCacheStats() != null) { - for (CacheStats cacheStats : ds.getCacheStats()) { + for (CacheStatsAdapter cacheStats : ds.getCacheStats()) { registerCacheStatsMBean(cacheStats); } } diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentStore.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentStore.java index 2bb1648c348..dbef133ee9a 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentStore.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentStore.java @@ -22,7 +22,7 @@ import java.util.Set; import java.util.stream.Collectors; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; import org.apache.jackrabbit.oak.plugins.document.UpdateOp.Condition; import org.apache.jackrabbit.oak.plugins.document.cache.CacheInvalidationStats; import org.apache.jackrabbit.oak.plugins.document.util.Utils; @@ -431,7 +431,7 @@ T findAndUpdate(Collection collection, * @return status information about the cache */ @Nullable - Iterable getCacheStats(); + Iterable getCacheStats(); /** * @return description of the underlying storage. diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/JournalDiffLoader.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/JournalDiffLoader.java index 4dbe51dacea..8951cb1dd4f 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/JournalDiffLoader.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/JournalDiffLoader.java @@ -20,7 +20,7 @@ import java.util.Map; import java.util.concurrent.TimeUnit; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; import org.apache.jackrabbit.oak.commons.sort.StringSort; import org.apache.jackrabbit.oak.commons.time.Stopwatch; import org.apache.jackrabbit.oak.plugins.document.util.StringValue; @@ -298,7 +298,7 @@ private void trackStats(Path path, @NotNull @Override - Iterable getStats() { + Iterable getStats() { return cache.getStats(); } diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/LocalDiffCache.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/LocalDiffCache.java index 2eecfa639b2..a149873c0b9 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/LocalDiffCache.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/LocalDiffCache.java @@ -22,7 +22,7 @@ import org.apache.jackrabbit.oak.cache.CacheValue; import org.apache.jackrabbit.oak.cache.api.Cache; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; import org.apache.jackrabbit.oak.commons.json.JsopBuilder; import org.apache.jackrabbit.oak.commons.json.JsopReader; import org.apache.jackrabbit.oak.commons.json.JsopTokenizer; @@ -45,11 +45,11 @@ public class LocalDiffCache extends DiffCache { private static int MAX_ENTRY_SIZE = 16 * 1024 * 1024; private final Cache diffCache; - private final CacheStats diffCacheStats; + private final CacheStatsAdapter diffCacheStats; LocalDiffCache(DocumentNodeStoreBuilder builder) { this.diffCache = builder.buildLocalDiffCache(); - this.diffCacheStats = new CacheStats(diffCache, + this.diffCacheStats = new CacheStatsAdapter(diffCache, "Document-LocalDiff", (k, v) -> builder.getWeigher().weigh(k, v), builder.getLocalDiffCacheSize()); } @@ -107,7 +107,7 @@ private boolean exceedsSize(){ @NotNull @Override - public Iterable getStats() { + public Iterable getStats() { return Collections.singleton(diffCacheStats); } diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/MemoryDiffCache.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/MemoryDiffCache.java index 4565075e522..07b8a7e59bf 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/MemoryDiffCache.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/MemoryDiffCache.java @@ -20,7 +20,7 @@ import org.apache.jackrabbit.oak.cache.CacheValue; import org.apache.jackrabbit.oak.cache.api.Cache; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; import org.apache.jackrabbit.oak.plugins.document.util.StringValue; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -50,12 +50,12 @@ public class MemoryDiffCache extends DiffCache { * Key: PathRev, value: StringValue */ protected final Cache diffCache; - protected final CacheStats diffCacheStats; + protected final CacheStatsAdapter diffCacheStats; protected MemoryDiffCache(DocumentNodeStoreBuilder builder) { diffCache = builder.buildMemoryDiffCache(); - diffCacheStats = new CacheStats(diffCache, "Document-MemoryDiff", + diffCacheStats = new CacheStatsAdapter(diffCache, "Document-MemoryDiff", (k, v) -> builder.getWeigher().weigh(k, v), builder.getMemoryDiffCacheSize()); } @@ -96,7 +96,7 @@ public Entry newEntry(@NotNull RevisionVector from, @NotNull @Override - public Iterable getStats() { + public Iterable getStats() { return Collections.singleton(diffCacheStats); } diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/TieredDiffCache.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/TieredDiffCache.java index 1cbab987399..4205a173223 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/TieredDiffCache.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/TieredDiffCache.java @@ -18,7 +18,7 @@ import org.apache.jackrabbit.oak.cache.api.Cache; import org.apache.jackrabbit.oak.cache.api.CacheBuilder; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; import org.apache.jackrabbit.oak.commons.collections.IterableUtils; import org.apache.jackrabbit.oak.plugins.document.util.RevisionsKey; import org.jetbrains.annotations.NotNull; @@ -93,7 +93,7 @@ public Entry newEntry(@NotNull RevisionVector from, @NotNull RevisionVector to, @NotNull @Override - public Iterable getStats() { + public Iterable getStats() { return IterableUtils.chainedIterable(localCache.getStats(), memoryCache.getStats()); } diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/cache/NodeDocumentCache.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/cache/NodeDocumentCache.java index 2473b759dbf..11c097edfb1 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/cache/NodeDocumentCache.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/cache/NodeDocumentCache.java @@ -34,7 +34,7 @@ import org.apache.jackrabbit.oak.cache.api.Cache; import org.apache.jackrabbit.oak.cache.CacheValue; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; import org.apache.jackrabbit.oak.commons.collections.IterableUtils; import org.apache.jackrabbit.oak.plugins.document.Document; import org.apache.jackrabbit.oak.plugins.document.NodeDocument; @@ -50,7 +50,7 @@ public class NodeDocumentCache implements Closeable { private final Cache nodeDocumentsCache; - private final CacheStats nodeDocumentsCacheStats; + private final CacheStatsAdapter nodeDocumentsCacheStats; /** * The previous documents cache @@ -58,16 +58,16 @@ public class NodeDocumentCache implements Closeable { * Key: StringValue, value: NodeDocument */ private final Cache prevDocumentsCache; - private final CacheStats prevDocumentsCacheStats; + private final CacheStatsAdapter prevDocumentsCacheStats; private final NodeDocumentLocks locks; private final List changeTrackers; public NodeDocumentCache(@NotNull Cache nodeDocumentsCache, - @NotNull CacheStats nodeDocumentsCacheStats, + @NotNull CacheStatsAdapter nodeDocumentsCacheStats, @NotNull Cache prevDocumentsCache, - @NotNull CacheStats prevDocumentsCacheStats, + @NotNull CacheStatsAdapter prevDocumentsCacheStats, @NotNull NodeDocumentLocks locks) { this.nodeDocumentsCache = nodeDocumentsCache; this.nodeDocumentsCacheStats = nodeDocumentsCacheStats; @@ -319,7 +319,7 @@ public Iterable values() { return IterableUtils.chainedIterable(nodeDocumentsCache.asMap().values(), prevDocumentsCache.asMap().values()); } - public Iterable getCacheStats() { + public Iterable getCacheStats() { return Arrays.asList(nodeDocumentsCacheStats, prevDocumentsCacheStats); } diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/memory/MemoryDocumentStore.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/memory/MemoryDocumentStore.java index d4b604796c7..ac7d8a43238 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/memory/MemoryDocumentStore.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/memory/MemoryDocumentStore.java @@ -33,7 +33,7 @@ import java.util.concurrent.locks.ReentrantReadWriteLock; import java.util.stream.Collectors; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; import org.apache.jackrabbit.oak.commons.properties.SystemPropertySupplier; import org.apache.jackrabbit.oak.plugins.document.Collection; import org.apache.jackrabbit.oak.plugins.document.Document; @@ -444,7 +444,7 @@ public WriteConcern getWriteConcern() { } @Override - public Iterable getCacheStats() { + public Iterable getCacheStats() { return null; } diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java index 2e3e5cb86f9..e04bdffc3a7 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java @@ -43,7 +43,7 @@ import org.apache.commons.io.IOUtils; import org.apache.jackrabbit.oak.cache.CacheValue; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; import org.apache.jackrabbit.oak.commons.collections.IterableUtils; import org.apache.jackrabbit.oak.commons.collections.IteratorUtils; import org.apache.jackrabbit.oak.commons.collections.ListUtils; @@ -2085,7 +2085,7 @@ public void dispose() { } @Override - public Iterable getCacheStats() { + public Iterable getCacheStats() { return nodesCache.getCacheStats(); } diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java index 3ccb652717e..861b1e74294 100755 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java @@ -59,9 +59,8 @@ import javax.sql.DataSource; -import org.apache.jackrabbit.oak.cache.AbstractCacheStats; import org.apache.jackrabbit.oak.cache.CacheValue; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; import org.apache.jackrabbit.oak.commons.collections.IteratorUtils; import org.apache.jackrabbit.oak.commons.collections.ListUtils; import org.apache.jackrabbit.oak.commons.collections.SetUtils; @@ -837,7 +836,7 @@ private T getIfCached(Collection collection, String id, } @Override - public Iterable getCacheStats() { + public Iterable getCacheStats() { return nodesCache.getCacheStats(); } diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/LeaseCheckDocumentStoreWrapper.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/LeaseCheckDocumentStoreWrapper.java index 27340684185..4bb31a5c973 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/LeaseCheckDocumentStoreWrapper.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/LeaseCheckDocumentStoreWrapper.java @@ -22,7 +22,7 @@ import java.util.Map; import java.util.function.Supplier; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; import org.apache.jackrabbit.oak.plugins.document.ClusterNodeInfo; import org.apache.jackrabbit.oak.plugins.document.Collection; import org.apache.jackrabbit.oak.plugins.document.Document; @@ -213,7 +213,7 @@ public void setReadWriteMode(String readWriteMode) { } @Override - public Iterable getCacheStats() { + public Iterable getCacheStats() { return leaseChecking(delegate::getCacheStats); } diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/LoggingDocumentStoreWrapper.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/LoggingDocumentStoreWrapper.java index b71357aae81..a0b327a2c94 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/LoggingDocumentStoreWrapper.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/LoggingDocumentStoreWrapper.java @@ -20,7 +20,7 @@ import java.util.Map; import java.util.concurrent.Callable; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; import org.apache.jackrabbit.oak.commons.json.JsopBuilder; import org.apache.jackrabbit.oak.plugins.document.Collection; import org.apache.jackrabbit.oak.plugins.document.Document; @@ -366,7 +366,7 @@ public void setReadWriteMode(String readWriteMode) { } @Override - public Iterable getCacheStats() { + public Iterable getCacheStats() { try { logMethod("getCacheStats"); return logResult(store::getCacheStats); diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/SynchronizingDocumentStoreWrapper.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/SynchronizingDocumentStoreWrapper.java index bc9660ae6eb..c61be694501 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/SynchronizingDocumentStoreWrapper.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/SynchronizingDocumentStoreWrapper.java @@ -19,7 +19,7 @@ import java.util.List; import java.util.Map; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; import org.apache.jackrabbit.oak.plugins.document.Collection; import org.apache.jackrabbit.oak.plugins.document.Document; import org.apache.jackrabbit.oak.plugins.document.DocumentStore; @@ -154,7 +154,7 @@ public synchronized void setReadWriteMode(String readWriteMode) { } @Override - public synchronized Iterable getCacheStats() { + public synchronized Iterable getCacheStats() { return store.getCacheStats(); } diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/ThrottlingDocumentStoreWrapper.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/ThrottlingDocumentStoreWrapper.java index 3f062859527..bdaa55ac98a 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/ThrottlingDocumentStoreWrapper.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/ThrottlingDocumentStoreWrapper.java @@ -16,8 +16,7 @@ */ package org.apache.jackrabbit.oak.plugins.document.util; -import org.apache.jackrabbit.oak.cache.AbstractCacheStats; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; import org.apache.jackrabbit.oak.plugins.document.Collection; import org.apache.jackrabbit.oak.plugins.document.Document; import org.apache.jackrabbit.oak.plugins.document.DocumentStore; @@ -234,7 +233,7 @@ public void setReadWriteMode(String readWriteMode) { } @Override - public Iterable getCacheStats() { + public Iterable getCacheStats() { return store.getCacheStats(); } diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/TimingDocumentStoreWrapper.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/TimingDocumentStoreWrapper.java index c515d77295a..066f6d3f422 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/TimingDocumentStoreWrapper.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/TimingDocumentStoreWrapper.java @@ -25,7 +25,7 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicInteger; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; import org.apache.jackrabbit.oak.plugins.document.Collection; import org.apache.jackrabbit.oak.plugins.document.Document; import org.apache.jackrabbit.oak.plugins.document.DocumentStore; @@ -423,10 +423,10 @@ public void setReadWriteMode(String readWriteMode) { @Override - public Iterable getCacheStats() { + public Iterable getCacheStats() { try { long start = now(); - Iterable result = base.getCacheStats(); + Iterable result = base.getCacheStats(); updateAndLogTimes("getCacheStats", start, 0, 0); return result; } catch (Exception e) { diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/AmnesiaDiffCache.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/AmnesiaDiffCache.java index f6e9b1ba383..b7bd403987f 100644 --- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/AmnesiaDiffCache.java +++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/AmnesiaDiffCache.java @@ -18,7 +18,7 @@ import java.util.Collections; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -61,7 +61,7 @@ public boolean done() { @NotNull @Override - public Iterable getStats() { + public Iterable getStats() { return Collections.emptyList(); } diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/CountingDocumentStore.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/CountingDocumentStore.java index 67eb5bc1453..85547a219de 100644 --- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/CountingDocumentStore.java +++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/CountingDocumentStore.java @@ -21,7 +21,7 @@ import java.util.List; import java.util.Map; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; import org.apache.jackrabbit.oak.plugins.document.cache.CacheInvalidationStats; import org.jetbrains.annotations.NotNull; @@ -215,7 +215,7 @@ public void setReadWriteMode(String readWriteMode) { } @Override - public Iterable getCacheStats() { + public Iterable getCacheStats() { return delegate.getCacheStats(); } diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentMKBuilderTest.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentMKBuilderTest.java index 4a6a1363acf..8e299c55814 100644 --- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentMKBuilderTest.java +++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentMKBuilderTest.java @@ -18,7 +18,7 @@ import com.mongodb.client.MongoClient; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; import org.apache.jackrabbit.oak.commons.collections.IterableUtils; import org.junit.Test; import org.junit.runner.RunWith; @@ -74,11 +74,11 @@ protected DocumentMK.Builder newBuilder(MongoClient client, String dbName) throw @Test public void lazyInit() throws Exception { - Iterable cacheStats = mk.getDocumentStore().getCacheStats(); + Iterable cacheStats = mk.getDocumentStore().getCacheStats(); assertNotNull(cacheStats); assertEquals(2, IterableUtils.size(cacheStats)); - CacheStats docCacheStats = IterableUtils.get(cacheStats, 0); - CacheStats prevDocCacheStats = IterableUtils.get(cacheStats, 1); + CacheStatsAdapter docCacheStats = IterableUtils.get(cacheStats, 0); + CacheStatsAdapter prevDocCacheStats = IterableUtils.get(cacheStats, 1); assertEquals("Document-Documents", docCacheStats.getName()); assertEquals("Document-PrevDocuments", prevDocCacheStats.getName()); assertEquals(expectedDocCacheSize, docCacheStats.getMaxTotalWeight()); diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreBuilderTest.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreBuilderTest.java index d37acf496e4..2fdc1a17126 100644 --- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreBuilderTest.java +++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreBuilderTest.java @@ -64,7 +64,7 @@ public void buildNodeDocumentCacheStatsAreNonEmpty() { DocumentStore store = new MemoryDocumentStore(); NodeDocumentCache cache = DocumentNodeStoreBuilder.newDocumentNodeStoreBuilder() .buildNodeDocumentCache(store, new StripedNodeDocumentLocks()); - Iterable stats = cache.getCacheStats(); + Iterable stats = cache.getCacheStats(); Assert.assertNotNull(stats); Assert.assertTrue(stats.iterator().hasNext()); } diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreDiffTest.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreDiffTest.java index 00612485e0e..bd1834cb5f9 100644 --- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreDiffTest.java +++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreDiffTest.java @@ -17,7 +17,7 @@ package org.apache.jackrabbit.oak.plugins.document; import org.apache.jackrabbit.oak.api.CommitFailedException; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; import org.apache.jackrabbit.oak.spi.commit.CommitInfo; import org.apache.jackrabbit.oak.spi.commit.EmptyHook; import org.apache.jackrabbit.oak.spi.state.DefaultNodeStateDiff; @@ -63,14 +63,14 @@ public void diff() throws Exception { merge(store, builder); } - Iterable stats = store.getDiffCacheStats(); - for (CacheStats cs : stats) { + Iterable stats = store.getDiffCacheStats(); + for (CacheStatsAdapter cs : stats) { cs.resetStats(); } // must not cause cache misses Diff.perform(before, after); - for (CacheStats cs : stats) { + for (CacheStatsAdapter cs : stats) { assertEquals(0, cs.getMissCount()); } } diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentStoreWrapper.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentStoreWrapper.java index da286e36e1c..c7a4060107a 100644 --- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentStoreWrapper.java +++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentStoreWrapper.java @@ -19,7 +19,7 @@ import java.util.List; import java.util.Map; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; import org.apache.jackrabbit.oak.plugins.document.cache.CacheInvalidationStats; import org.jetbrains.annotations.NotNull; @@ -150,7 +150,7 @@ public void setReadWriteMode(String readWriteMode) { } @Override - public Iterable getCacheStats() { + public Iterable getCacheStats() { return store.getCacheStats(); } diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/LocalDiffCacheTest.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/LocalDiffCacheTest.java index baa9e29047e..102f4e30c1e 100644 --- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/LocalDiffCacheTest.java +++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/LocalDiffCacheTest.java @@ -22,7 +22,7 @@ import java.util.Map; import org.apache.jackrabbit.oak.api.CommitFailedException; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; import org.apache.jackrabbit.oak.plugins.document.LocalDiffCache.Diff; import org.apache.jackrabbit.oak.plugins.document.memory.MemoryDocumentStore; import org.apache.jackrabbit.oak.spi.commit.CommitInfo; @@ -56,7 +56,7 @@ public void simpleDiff() throws Exception{ o.reset(); DiffCache cache = store.getDiffCache(); - Iterable stats = cache.getStats(); + Iterable stats = cache.getStats(); NodeBuilder builder = store.getRoot().builder(); builder.child("a").child("a2").setProperty("foo", "bar"); @@ -118,24 +118,24 @@ private static DocumentMK create(DocumentStore ds, int clusterId){ .open(); } - private static long getHitCount(Iterable stats) { + private static long getHitCount(Iterable stats) { long hitCount = 0; - for (CacheStats cs : stats) { + for (CacheStatsAdapter cs : stats) { hitCount += cs.getHitCount(); } return hitCount; } - private static long getMissCount(Iterable stats) { + private static long getMissCount(Iterable stats) { long missCount = 0; - for (CacheStats cs : stats) { + for (CacheStatsAdapter cs : stats) { missCount += cs.getMissCount(); } return missCount; } - private static void resetStats(Iterable stats) { - for (CacheStats cs : stats) { + private static void resetStats(Iterable stats) { + for (CacheStatsAdapter cs : stats) { cs.resetStats(); } } diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/MemoryDiffCacheTest.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/MemoryDiffCacheTest.java index 21c500b49c9..9e0d0839739 100644 --- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/MemoryDiffCacheTest.java +++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/MemoryDiffCacheTest.java @@ -18,7 +18,7 @@ import java.util.UUID; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; import org.junit.Rule; import org.junit.Test; @@ -68,7 +68,7 @@ public void getStatsReturnsNonEmptyIterable() { DiffCache cache = new MemoryDiffCache(builderProvider.newBuilder() .setCacheSegmentCount(1) .memoryCacheDistribution(0, 0, 0, 99, 0)); - Iterable statsIterable = cache.getStats(); + Iterable statsIterable = cache.getStats(); assertNotNull(statsIterable); assertTrue(statsIterable.iterator().hasNext()); } diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/NodeStoreDiffTest.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/NodeStoreDiffTest.java index c301d68aa38..cf1b8a1211f 100644 --- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/NodeStoreDiffTest.java +++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/NodeStoreDiffTest.java @@ -25,7 +25,7 @@ import java.util.Set; import org.apache.jackrabbit.oak.api.CommitFailedException; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; import org.apache.jackrabbit.oak.commons.PathUtils; import org.apache.jackrabbit.oak.plugins.commit.AnnotatingConflictHandler; import org.apache.jackrabbit.oak.plugins.commit.ConflictHook; @@ -228,7 +228,7 @@ public void diffBranchBase() throws Exception { private long diffCacheRequests(DocumentNodeStore ns) { long num = 0; - for (CacheStats stats : ns.getDiffCacheStats()) { + for (CacheStatsAdapter stats : ns.getDiffCacheStats()) { num += stats.getRequestCount(); } return num; diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/TieredDiffCacheTest.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/TieredDiffCacheTest.java index 1dc85336acb..37496f1e94c 100644 --- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/TieredDiffCacheTest.java +++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/TieredDiffCacheTest.java @@ -18,7 +18,7 @@ import java.lang.reflect.Field; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; import org.junit.Rule; import org.junit.Test; @@ -88,7 +88,7 @@ public void newEntryExternalPopulatesMemoryCache() { @Test public void getStatsReturnsNonEmptyIterable() { TieredDiffCache cache = buildCache(); - Iterable stats = cache.getStats(); + Iterable stats = cache.getStats(); assertNotNull(stats); assertTrue(stats.iterator().hasNext()); } diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/cache/CacheChangesTrackerTest.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/cache/CacheChangesTrackerTest.java index e3cde765105..a06a9104350 100644 --- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/cache/CacheChangesTrackerTest.java +++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/cache/CacheChangesTrackerTest.java @@ -28,7 +28,7 @@ import org.apache.jackrabbit.oak.cache.CacheLIRS; import org.apache.jackrabbit.oak.cache.api.Cache; import org.apache.jackrabbit.oak.cache.CacheValue; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; import org.apache.jackrabbit.oak.plugins.document.Collection; import org.apache.jackrabbit.oak.plugins.document.DocumentStore; import org.apache.jackrabbit.oak.plugins.document.NodeDocument; @@ -153,8 +153,8 @@ public void testOnlyExternalChanges() { private NodeDocumentCache createCache() { Cache nodeDocumentsCache = (new CacheLIRS(10)).asOakCache(); Cache prevDocumentsCache = (new CacheLIRS(10)).asOakCache(); - CacheStats nodeDocumentsCacheStats = Mockito.mock(CacheStats.class); - CacheStats prevDocumentsCacheStats = Mockito.mock(CacheStats.class); + CacheStatsAdapter nodeDocumentsCacheStats = Mockito.mock(CacheStatsAdapter.class); + CacheStatsAdapter prevDocumentsCacheStats = Mockito.mock(CacheStatsAdapter.class); NodeDocumentLocks locks = new StripedNodeDocumentLocks(); return new NodeDocumentCache(nodeDocumentsCache, nodeDocumentsCacheStats, prevDocumentsCache, prevDocumentsCacheStats, locks); } diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/cache/NodeDocumentCacheTest.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/cache/NodeDocumentCacheTest.java index 95ec0567a10..47c6192a189 100644 --- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/cache/NodeDocumentCacheTest.java +++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/cache/NodeDocumentCacheTest.java @@ -16,7 +16,7 @@ */ package org.apache.jackrabbit.oak.plugins.document.cache; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; import org.apache.jackrabbit.oak.plugins.document.Document; import org.apache.jackrabbit.oak.plugins.document.DocumentStore; import org.apache.jackrabbit.oak.plugins.document.NodeDocument; @@ -126,7 +126,7 @@ public void invalidateRemovesDocumentFromCache() { @Test public void getCacheStatsReturnsNonEmptyIterable() { - Iterable statsIterable = cache.getCacheStats(); + Iterable statsIterable = cache.getCacheStats(); assertNotNull(statsIterable); assertTrue(statsIterable.iterator().hasNext()); } From 43835e495b6ec473b826b58a9c8b6bc008695b3c Mon Sep 17 00:00:00 2001 From: rishabhdaim Date: Thu, 16 Apr 2026 15:40:52 +0530 Subject: [PATCH 04/11] OAK-12162 : reverted cachestats to CacheStatsAdapter renaming --- .../oak/plugins/blob/CachingBlobStore.java | 8 ++++---- .../jackrabbit/oak/plugins/blob/FileCache.java | 4 ++-- .../blob/datastore/DataStoreBlobStore.java | 8 ++++---- .../{CacheStatsAdapter.java => CacheStats.java} | 4 ++-- .../jackrabbit/oak/cache/api/package-info.java | 2 +- .../oak/cache/AbstractCacheStatsTest.java | 8 ++++---- ...StatsAdapterTest.java => CacheStatsTest.java} | 2 +- .../oak/cache/impl/CacheBuilderTest.java | 4 ++-- .../index/lucene/LuceneIndexProviderService.java | 4 ++-- .../document/DocumentStoreIndexerBase.java | 4 ++-- .../plugins/index/search/ExtractedTextCache.java | 8 ++++---- .../RemotePersistentCacheService.java | 7 ++++--- .../oak/segment/CachingSegmentReader.java | 6 +++--- .../jackrabbit/oak/segment/ReaderCache.java | 8 ++++---- .../oak/segment/SegmentNodeStoreRegistrar.java | 14 +++++++------- .../oak/plugins/document/DiffCache.java | 4 ++-- .../oak/plugins/document/DocumentNodeStore.java | 12 ++++++------ .../document/DocumentNodeStoreBuilder.java | 10 +++++----- .../document/DocumentNodeStoreService.java | 4 ++-- .../oak/plugins/document/DocumentStore.java | 4 ++-- .../oak/plugins/document/JournalDiffLoader.java | 4 ++-- .../oak/plugins/document/LocalDiffCache.java | 8 ++++---- .../oak/plugins/document/MemoryDiffCache.java | 8 ++++---- .../oak/plugins/document/TieredDiffCache.java | 4 ++-- .../document/cache/NodeDocumentCache.java | 12 ++++++------ .../document/memory/MemoryDocumentStore.java | 4 ++-- .../document/mongo/MongoDocumentStore.java | 4 ++-- .../plugins/document/rdb/RDBDocumentStore.java | 4 ++-- .../util/LeaseCheckDocumentStoreWrapper.java | 4 ++-- .../util/LoggingDocumentStoreWrapper.java | 4 ++-- .../util/SynchronizingDocumentStoreWrapper.java | 4 ++-- .../util/ThrottlingDocumentStoreWrapper.java | 4 ++-- .../util/TimingDocumentStoreWrapper.java | 6 +++--- .../oak/plugins/document/AmnesiaDiffCache.java | 4 ++-- .../plugins/document/CountingDocumentStore.java | 4 ++-- .../plugins/document/DocumentMKBuilderTest.java | 8 ++++---- .../document/DocumentNodeStoreBuilderTest.java | 2 +- .../document/DocumentNodeStoreDiffTest.java | 8 ++++---- .../plugins/document/DocumentStoreWrapper.java | 4 ++-- .../oak/plugins/document/LocalDiffCacheTest.java | 16 ++++++++-------- .../plugins/document/MemoryDiffCacheTest.java | 4 ++-- .../oak/plugins/document/NodeStoreDiffTest.java | 4 ++-- .../plugins/document/TieredDiffCacheTest.java | 4 ++-- .../document/cache/CacheChangesTrackerTest.java | 6 +++--- .../document/cache/NodeDocumentCacheTest.java | 4 ++-- 45 files changed, 132 insertions(+), 131 deletions(-) rename oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/{CacheStatsAdapter.java => CacheStats.java} (96%) rename oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/api/{CacheStatsAdapterTest.java => CacheStatsTest.java} (99%) diff --git a/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/CachingBlobStore.java b/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/CachingBlobStore.java index 46a6939a531..3bbd16fb32b 100644 --- a/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/CachingBlobStore.java +++ b/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/CachingBlobStore.java @@ -17,7 +17,7 @@ package org.apache.jackrabbit.oak.plugins.blob; import org.apache.jackrabbit.oak.cache.CacheLIRS; -import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.cache.api.LoadingCache; import org.apache.jackrabbit.oak.cache.api.Weigher; import org.apache.jackrabbit.oak.commons.StringUtils; @@ -47,7 +47,7 @@ public abstract class CachingBlobStore extends AbstractBlobStore { return (int) weight; }; - private final CacheStatsAdapter cacheStats; + private final CacheStats cacheStats; public static final String MEM_CACHE_NAME = "BlobStore-MemCache"; @@ -61,7 +61,7 @@ public CachingBlobStore(long cacheSize) { weigher(weigher::weigh). build().asOakCache(); - cacheStats = new CacheStatsAdapter(cache, MEM_CACHE_NAME, weigher, cacheSize); + cacheStats = new CacheStats(cache, MEM_CACHE_NAME, weigher, cacheSize); } public CachingBlobStore() { @@ -78,7 +78,7 @@ public long getBlobCacheSize() { return blobCacheSize; } - public CacheStatsAdapter getCacheStats() { + public CacheStats getCacheStats() { return cacheStats; } } diff --git a/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/FileCache.java b/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/FileCache.java index 94fa0bfed61..8c34d663bb7 100644 --- a/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/FileCache.java +++ b/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/FileCache.java @@ -39,7 +39,7 @@ import org.apache.jackrabbit.oak.cache.CacheLIRS; import org.apache.jackrabbit.oak.cache.api.Cache; import org.apache.jackrabbit.oak.cache.api.CacheLoader; -import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.cache.api.Weigher; import org.apache.jackrabbit.oak.commons.StringUtils; import org.apache.jackrabbit.oak.commons.concurrent.ExecutorCloser; @@ -423,7 +423,7 @@ private int build() { } } -class FileCacheStats extends CacheStatsAdapter implements DataStoreCacheStatsMBean { +class FileCacheStats extends CacheStats implements DataStoreCacheStatsMBean { private static final long BLOCK_SIZE = 4 * 1024; private final Weigher weigher; private final Cache cache; diff --git a/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/datastore/DataStoreBlobStore.java b/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/datastore/DataStoreBlobStore.java index 9a34a3fdda7..6e858c1bcd0 100644 --- a/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/datastore/DataStoreBlobStore.java +++ b/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/datastore/DataStoreBlobStore.java @@ -53,7 +53,7 @@ import org.apache.jackrabbit.oak.api.blob.BlobUpload; import org.apache.jackrabbit.oak.api.blob.BlobUploadOptions; import org.apache.jackrabbit.oak.cache.api.Cache; -import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.cache.api.Weigher; import org.apache.jackrabbit.oak.commons.StringUtils; import org.apache.jackrabbit.oak.commons.collections.IteratorUtils; @@ -132,7 +132,7 @@ public int weigh(@NotNull String key, @NotNull byte[] value) { } }; - private final CacheStatsAdapter cacheStats; + private final CacheStats cacheStats; public static final String MEM_CACHE_NAME = "BlobStore-MemCache"; @@ -157,7 +157,7 @@ public DataStoreBlobStore(DataStore delegate, boolean encodeLengthInId, int cach .maximumWeight(cacheSize) .weigher(weigher::weigh) .build().asOakCache(); - this.cacheStats = new CacheStatsAdapter(cache, MEM_CACHE_NAME, weigher, cacheSize); + this.cacheStats = new CacheStats(cache, MEM_CACHE_NAME, weigher, cacheSize); } //~----------------------------------< DataStore > @@ -826,7 +826,7 @@ public DataStore getDataStore() { return delegate; } - public CacheStatsAdapter getCacheStats() { + public CacheStats getCacheStats() { return cacheStats; } diff --git a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/CacheStatsAdapter.java b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/CacheStats.java similarity index 96% rename from oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/CacheStatsAdapter.java rename to oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/CacheStats.java index 760359c0709..14433f982d9 100644 --- a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/CacheStatsAdapter.java +++ b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/CacheStats.java @@ -26,7 +26,7 @@ * Exposes a {@link Cache}'s statistics via the {@link org.apache.jackrabbit.oak.api.jmx.CacheStatsMBean} * interface. */ -public class CacheStatsAdapter extends AbstractCacheStats { +public class CacheStats extends AbstractCacheStats { private final Cache cache; private final Weigher weigher; @@ -41,7 +41,7 @@ public class CacheStatsAdapter extends AbstractCacheStats { * @param maxWeight configured maximum weight for the cache; {@code -1} if unbounded */ @SuppressWarnings("unchecked") - public CacheStatsAdapter( + public CacheStats( @NotNull Cache cache, @NotNull String name, @Nullable Weigher weigher, diff --git a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/package-info.java b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/package-info.java index ce415459ccb..4bd384ffb3e 100644 --- a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/package-info.java +++ b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/package-info.java @@ -19,7 +19,7 @@ * For Oak internal use only. Do not use outside Oak components. */ @Internal(since = "1.0.0") -@Version("2.0.0") +@Version("1.0.0") package org.apache.jackrabbit.oak.cache.api; import org.apache.jackrabbit.oak.commons.annotations.Internal; diff --git a/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/AbstractCacheStatsTest.java b/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/AbstractCacheStatsTest.java index f48d04b7fc0..7a4c92a38ff 100644 --- a/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/AbstractCacheStatsTest.java +++ b/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/AbstractCacheStatsTest.java @@ -18,7 +18,7 @@ import java.util.concurrent.ExecutionException; -import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.junit.Assert; import org.junit.Before; import org.junit.Test; @@ -34,12 +34,12 @@ public class AbstractCacheStatsTest { private static final long MAX_WEIGHT = 1000; private CacheLIRS cache; - private CacheStatsAdapter stats; + private CacheStats stats; @Before public void setUp() { cache = new CacheLIRS<>(null, MAX_WEIGHT, 1, 1, 0, null, null, null); - stats = new CacheStatsAdapter(cache.asOakCache(), CACHE_NAME, null, MAX_WEIGHT); + stats = new CacheStats(cache.asOakCache(), CACHE_NAME, null, MAX_WEIGHT); } @Test @@ -96,7 +96,7 @@ public void evictionCountIncreasesAfterCapacityEviction() { CacheLIRS smallCache = CacheLIRS.newBuilder() .maximumSize(5) .build(); - CacheStatsAdapter smallStats = new CacheStatsAdapter(smallCache.asOakCache(), "small", null, 5); + CacheStats smallStats = new CacheStats(smallCache.asOakCache(), "small", null, 5); for (int i = 0; i < 30; i++) { smallCache.put("k" + i, "v" + i); } diff --git a/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/api/CacheStatsAdapterTest.java b/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/api/CacheStatsTest.java similarity index 99% rename from oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/api/CacheStatsAdapterTest.java rename to oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/api/CacheStatsTest.java index 1811dba0cba..e33f80fb905 100644 --- a/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/api/CacheStatsAdapterTest.java +++ b/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/api/CacheStatsTest.java @@ -20,7 +20,7 @@ import org.junit.Test; /** Tests for {@link CacheStatsSnapshot}. */ -public class CacheStatsAdapterTest { +public class CacheStatsTest { private CacheStatsSnapshot stats(long hits, long misses, long loadSuccess, long loadFail, long loadTime, long evictions) { diff --git a/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/impl/CacheBuilderTest.java b/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/impl/CacheBuilderTest.java index e0fd02f39cf..cebc5d61362 100644 --- a/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/impl/CacheBuilderTest.java +++ b/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/impl/CacheBuilderTest.java @@ -26,7 +26,7 @@ import org.apache.jackrabbit.oak.cache.api.LoadingCache; import org.apache.jackrabbit.oak.cache.api.EvictionCause; import org.apache.jackrabbit.oak.cache.api.CacheBuilder; -import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.cache.impl.caffeine.CaffeineCacheAdapter; import org.apache.jackrabbit.oak.cache.impl.caffeine.CaffeineLoadingCacheAdapter; import org.junit.Assert; @@ -239,7 +239,7 @@ public void oakCacheStatsAdapterBridgesOakStats() { .weigher((k, v) -> k.length() + v.length()) .recordStats() .build(); - CacheStatsAdapter stats = new CacheStatsAdapter( + CacheStats stats = new CacheStats( cache, "testCache", (k, v) -> k.length() + v.length(), 100); cache.put("aa", "bbb"); diff --git a/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexProviderService.java b/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexProviderService.java index 029c58c313c..33931448797 100644 --- a/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexProviderService.java +++ b/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexProviderService.java @@ -34,7 +34,7 @@ import org.apache.commons.io.FilenameUtils; import org.apache.jackrabbit.oak.api.jmx.CacheStatsMBean; import org.apache.jackrabbit.oak.api.jmx.CheckpointMBean; -import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.commons.internal.concurrent.ExecutorHelper; import org.apache.jackrabbit.oak.osgi.OsgiWhiteboard; import org.apache.jackrabbit.oak.plugins.document.spi.JournalPropertyService; @@ -686,7 +686,7 @@ private void initializeExtractedTextCache(BundleContext bundleContext, Configura if (extractedTextProvider != null){ registerExtractedTextProvider(extractedTextProvider); } - CacheStatsAdapter stats = extractedTextCache.getCacheStats(); + CacheStats stats = extractedTextCache.getCacheStats(); if (stats != null){ oakRegs.add(registerMBean(whiteboard, CacheStatsMBean.class, stats, diff --git a/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/DocumentStoreIndexerBase.java b/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/DocumentStoreIndexerBase.java index e5cb1a18b9b..096612305c0 100644 --- a/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/DocumentStoreIndexerBase.java +++ b/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/DocumentStoreIndexerBase.java @@ -21,7 +21,7 @@ import com.codahale.metrics.MetricRegistry; import com.mongodb.ConnectionString; import org.apache.jackrabbit.oak.api.CommitFailedException; -import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.commons.PathUtils; import org.apache.jackrabbit.oak.commons.concurrent.ExecutorCloser; import org.apache.jackrabbit.oak.commons.pio.Closer; @@ -407,7 +407,7 @@ public void reindex() throws CommitFailedException, IOException { } } ExtractedTextCache extractedTextCache = indexerProvider.getTextCache(); - CacheStatsAdapter cacheStats = extractedTextCache == null ? null : extractedTextCache.getCacheStats(); + CacheStats cacheStats = extractedTextCache == null ? null : extractedTextCache.getCacheStats(); log.info("Text extraction cache statistics: {}", cacheStats == null ? "N/A" : cacheStats.cacheInfoAsString()); progressReporter.reindexingTraversalEnd(); diff --git a/oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/ExtractedTextCache.java b/oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/ExtractedTextCache.java index ee3489f0184..117a58dae74 100644 --- a/oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/ExtractedTextCache.java +++ b/oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/ExtractedTextCache.java @@ -40,7 +40,7 @@ import org.apache.jackrabbit.oak.api.Blob; import org.apache.jackrabbit.oak.cache.api.Cache; import org.apache.jackrabbit.oak.cache.api.CacheBuilder; -import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.cache.api.Weigher; import org.apache.jackrabbit.oak.commons.IOUtils; import org.apache.jackrabbit.oak.commons.internal.concurrent.ExecutorHelper; @@ -86,7 +86,7 @@ public class ExtractedTextCache { private final ConcurrentHashMap timeoutMap; private final File indexDir; - private final CacheStatsAdapter cacheStats; + private final CacheStats cacheStats; private final boolean alwaysUsePreExtractedCache; private volatile ExecutorService executorService; private volatile int timeoutCount; @@ -110,7 +110,7 @@ public ExtractedTextCache(long maxWeight, long expiryTimeInSecs, boolean alwaysU .expireAfterAccess(Duration.ofSeconds(expiryTimeInSecs)) .recordStats() .build(); - cacheStats = new CacheStatsAdapter(cache, "ExtractedTextCache", + cacheStats = new CacheStats(cache, "ExtractedTextCache", EmpiricalWeigher.INSTANCE, maxWeight); } else { cache = null; @@ -249,7 +249,7 @@ public int getTimeoutCount() { } @Nullable - public CacheStatsAdapter getCacheStats() { + public CacheStats getCacheStats() { return cacheStats; } diff --git a/oak-segment-remote/src/main/java/org/apache/jackrabbit/oak/segment/remote/persistentcache/RemotePersistentCacheService.java b/oak-segment-remote/src/main/java/org/apache/jackrabbit/oak/segment/remote/persistentcache/RemotePersistentCacheService.java index c402c1237d0..7b3129f169a 100644 --- a/oak-segment-remote/src/main/java/org/apache/jackrabbit/oak/segment/remote/persistentcache/RemotePersistentCacheService.java +++ b/oak-segment-remote/src/main/java/org/apache/jackrabbit/oak/segment/remote/persistentcache/RemotePersistentCacheService.java @@ -20,6 +20,7 @@ import static org.apache.jackrabbit.oak.commons.IOUtils.closeQuietly; import org.apache.jackrabbit.oak.api.jmx.CacheStatsMBean; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.commons.pio.Closer; import org.apache.jackrabbit.oak.osgi.OsgiWhiteboard; import org.apache.jackrabbit.oak.segment.spi.monitor.RoleStatisticsProvider; @@ -93,7 +94,7 @@ private PersistentCache createPersistentCache(Configuration configuration, Close closer.register(persistentDiskCache); CacheStatsMBean diskCacheStatsMBean = persistentDiskCache.getCacheStats(); - registerCloseable(registerMBean(CacheStatsMBean.class, diskCacheStatsMBean, CacheStatsMBean.TYPE, diskCacheStatsMBean.getName())); + registerCloseable(registerMBean(CacheStatsMBean.class, diskCacheStatsMBean, CacheStats.TYPE, diskCacheStatsMBean.getName())); if (configuration.redisCacheEnabled()) { PersistentRedisCache redisCache = new PersistentRedisCache(configuration.redisCacheHost(), configuration.redisCachePort(), configuration.redisCacheExpireSeconds(), configuration.redisSocketTimeout(), configuration.redisConnectionTimeout(), @@ -102,7 +103,7 @@ private PersistentCache createPersistentCache(Configuration configuration, Close closer.register(redisCache); CacheStatsMBean redisCacheStatsMBean = redisCache.getCacheStats(); - registerCloseable(registerMBean(CacheStatsMBean.class, redisCacheStatsMBean, CacheStatsMBean.TYPE, redisCacheStatsMBean.getName())); + registerCloseable(registerMBean(CacheStatsMBean.class, redisCacheStatsMBean, CacheStats.TYPE, redisCacheStatsMBean.getName())); } return persistentDiskCache; @@ -112,7 +113,7 @@ private PersistentCache createPersistentCache(Configuration configuration, Close closer.register(redisCache); CacheStatsMBean redisCacheStatsMBean = redisCache.getCacheStats(); - registerCloseable(registerMBean(CacheStatsMBean.class, redisCacheStatsMBean, CacheStatsMBean.TYPE, redisCacheStatsMBean.getName())); + registerCloseable(registerMBean(CacheStatsMBean.class, redisCacheStatsMBean, CacheStats.TYPE, redisCacheStatsMBean.getName())); return redisCache; } diff --git a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/CachingSegmentReader.java b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/CachingSegmentReader.java index c6b83ddf429..6bd79f5b38d 100644 --- a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/CachingSegmentReader.java +++ b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/CachingSegmentReader.java @@ -27,7 +27,7 @@ import org.apache.jackrabbit.oak.api.PropertyState; import org.apache.jackrabbit.oak.api.Type; -import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.plugins.memory.PropertyStates; import org.apache.jackrabbit.oak.segment.util.SafeEncode; import org.apache.jackrabbit.oak.spi.blob.BlobStore; @@ -227,12 +227,12 @@ public SegmentBlob readBlob(@NotNull RecordId id) { } @NotNull - public CacheStatsAdapter getStringCacheStats() { + public CacheStats getStringCacheStats() { return stringCache.getStats(); } @NotNull - public CacheStatsAdapter getTemplateCacheStats() { + public CacheStats getTemplateCacheStats() { return templateCache.getStats(); } } diff --git a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/ReaderCache.java b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/ReaderCache.java index 36c3fa34872..87d635b1ca4 100644 --- a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/ReaderCache.java +++ b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/ReaderCache.java @@ -27,7 +27,7 @@ import org.apache.jackrabbit.oak.cache.CacheLIRS; import org.apache.jackrabbit.oak.cache.api.Cache; -import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.cache.api.Weigher; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -57,7 +57,7 @@ public abstract class ReaderCache { private final Cache cache; @NotNull - private final CacheStatsAdapter cacheStats; + private final CacheStats cacheStats; /** * Create a new string cache. @@ -79,11 +79,11 @@ protected ReaderCache(long maxWeight, int averageWeight, .weigher(weigher::weigh) .build() .asOakCache(); - cacheStats = new CacheStatsAdapter(cache, name, weigher, maxWeight); + cacheStats = new CacheStats(cache, name, weigher, maxWeight); } @NotNull - public CacheStatsAdapter getStats() { + public CacheStats getStats() { return cacheStats; } diff --git a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreRegistrar.java b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreRegistrar.java index a1319d9b680..acbcb1fb46e 100644 --- a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreRegistrar.java +++ b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreRegistrar.java @@ -30,7 +30,7 @@ import org.apache.jackrabbit.oak.api.jmx.CheckpointMBean; import org.apache.jackrabbit.oak.api.jmx.FileStoreBackupRestoreMBean; import org.apache.jackrabbit.oak.backup.impl.FileStoreBackupRestoreImpl; -import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.commons.pio.Closer; import org.apache.jackrabbit.oak.plugins.blob.BlobGC; import org.apache.jackrabbit.oak.plugins.blob.BlobGCMBean; @@ -287,7 +287,7 @@ private SegmentNodeStore register() throws IOException { registerCloseable(registerMBean( CacheStatsMBean.class, segmentCacheStats, - CacheStatsAdapter.TYPE, + CacheStats.TYPE, segmentCacheStats.getName() )); @@ -297,7 +297,7 @@ private SegmentNodeStore register() throws IOException { registerCloseable(registerMBean( CacheStatsMBean.class, stringCacheStats, - CacheStatsAdapter.TYPE, + CacheStats.TYPE, stringCacheStats.getName() )); @@ -305,7 +305,7 @@ private SegmentNodeStore register() throws IOException { registerCloseable(registerMBean( CacheStatsMBean.class, templateCacheStats, - CacheStatsAdapter.TYPE, + CacheStats.TYPE, templateCacheStats.getName() )); @@ -315,7 +315,7 @@ private SegmentNodeStore register() throws IOException { registerCloseable(registerMBean( CacheStatsMBean.class, stringDeduplicationCacheStats, - CacheStatsAdapter.TYPE, + CacheStats.TYPE, stringDeduplicationCacheStats.getName() )); } @@ -325,7 +325,7 @@ private SegmentNodeStore register() throws IOException { registerCloseable(registerMBean( CacheStatsMBean.class, templateDeduplicationCacheStats, - CacheStatsAdapter.TYPE, + CacheStats.TYPE, templateDeduplicationCacheStats.getName() )); } @@ -335,7 +335,7 @@ private SegmentNodeStore register() throws IOException { registerCloseable(registerMBean( CacheStatsMBean.class, nodeDeduplicationCacheStats, - CacheStatsAdapter.TYPE, + CacheStats.TYPE, nodeDeduplicationCacheStats.getName() )); } diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DiffCache.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DiffCache.java index 9668441b239..367e136a5bd 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DiffCache.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DiffCache.java @@ -16,7 +16,7 @@ */ package org.apache.jackrabbit.oak.plugins.document; -import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.commons.json.JsopReader; import org.apache.jackrabbit.oak.commons.json.JsopTokenizer; import org.jetbrains.annotations.NotNull; @@ -69,7 +69,7 @@ abstract Entry newEntry(@NotNull RevisionVector from, * @return the statistics for this cache. */ @NotNull - abstract Iterable getStats(); + abstract Iterable getStats(); /** * Invalidates all the entries in the cache. diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java index 2d612da8379..b0967730cd2 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java @@ -76,7 +76,7 @@ import org.apache.jackrabbit.oak.api.Blob; import org.apache.jackrabbit.oak.api.CommitFailedException; import org.apache.jackrabbit.oak.api.PropertyState; -import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.commons.PerfLogger; import org.apache.jackrabbit.oak.commons.collections.IterableUtils; import org.apache.jackrabbit.oak.commons.collections.ListUtils; @@ -419,7 +419,7 @@ public final class DocumentNodeStore * Key: PathRev, value: DocumentNodeState */ private final Cache nodeCache; - private final CacheStatsAdapter nodeCacheStats; + private final CacheStats nodeCacheStats; /** * Child node cache. @@ -427,7 +427,7 @@ public final class DocumentNodeStore * Key: PathRev, value: Children */ private final Cache nodeChildrenCache; - private final CacheStatsAdapter nodeChildrenCacheStats; + private final CacheStats nodeChildrenCacheStats; /** * The change log to keep track of commits for diff operations. @@ -1292,16 +1292,16 @@ public ClusterNodeInfo getClusterInfo() { return clusterNodeInfo; } - public CacheStatsAdapter getNodeCacheStats() { + public CacheStats getNodeCacheStats() { return nodeCacheStats; } - public CacheStatsAdapter getNodeChildrenCacheStats() { + public CacheStats getNodeChildrenCacheStats() { return nodeChildrenCacheStats; } @NotNull - public Iterable getDiffCacheStats() { + public Iterable getDiffCacheStats() { return diffCache.getStats(); } diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreBuilder.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreBuilder.java index b8684068c60..4e9653407ac 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreBuilder.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreBuilder.java @@ -38,7 +38,7 @@ import org.apache.jackrabbit.oak.cache.CacheLIRS; import org.apache.jackrabbit.oak.cache.api.Cache; import org.apache.jackrabbit.oak.cache.api.CacheBuilder; -import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.cache.api.Weigher; import org.apache.jackrabbit.oak.cache.AbstractCacheStats; import org.apache.jackrabbit.oak.cache.CacheValue; @@ -1002,17 +1002,17 @@ public Cache buildPrevDocumentsCache(DocumentStore do public NodeDocumentCache buildNodeDocumentCache(DocumentStore docStore, NodeDocumentLocks locks) { Cache nodeDocumentsCache = buildDocumentCache(docStore); - CacheStatsAdapter nodeDocumentsCacheStats = newCacheStatsAdapter(nodeDocumentsCache, "Document-Documents", getDocumentCacheSize()); + CacheStats nodeDocumentsCacheStats = newCacheStatsAdapter(nodeDocumentsCache, "Document-Documents", getDocumentCacheSize()); Cache prevDocumentsCache = buildPrevDocumentsCache(docStore); - CacheStatsAdapter prevDocumentsCacheStats = newCacheStatsAdapter(prevDocumentsCache, "Document-PrevDocuments", getPrevDocumentCacheSize()); + CacheStats prevDocumentsCacheStats = newCacheStatsAdapter(prevDocumentsCache, "Document-PrevDocuments", getPrevDocumentCacheSize()); return new NodeDocumentCache(nodeDocumentsCache, nodeDocumentsCacheStats, prevDocumentsCache, prevDocumentsCacheStats, locks); } @SuppressWarnings({"unchecked", "rawtypes"}) - CacheStatsAdapter newCacheStatsAdapter(Cache cache, String name, long maxWeight) { - return new CacheStatsAdapter((Cache) cache, name, (Weigher) weigher, maxWeight); + CacheStats newCacheStatsAdapter(Cache cache, String name, long maxWeight) { + return new CacheStats((Cache) cache, name, (Weigher) weigher, maxWeight); } /** diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreService.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreService.java index 3c1b2b37f46..41ff6973a7a 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreService.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreService.java @@ -60,7 +60,7 @@ import org.apache.jackrabbit.oak.api.jmx.CheckpointMBean; import org.apache.jackrabbit.oak.api.jmx.PersistentCacheStatsMBean; import org.apache.jackrabbit.oak.cache.AbstractCacheStats; -import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.commons.pio.Closer; import org.apache.jackrabbit.oak.plugins.document.VersionGarbageCollector.VersionGCStats; import org.apache.jackrabbit.oak.plugins.document.mongo.MongoDocumentNodeStoreBuilder; @@ -879,7 +879,7 @@ private void registerJMXBeans(final DocumentNodeStore store, DocumentNodeStoreBu } DocumentStore ds = store.getDocumentStore(); if (ds.getCacheStats() != null) { - for (CacheStatsAdapter cacheStats : ds.getCacheStats()) { + for (CacheStats cacheStats : ds.getCacheStats()) { registerCacheStatsMBean(cacheStats); } } diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentStore.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentStore.java index dbef133ee9a..2bb1648c348 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentStore.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentStore.java @@ -22,7 +22,7 @@ import java.util.Set; import java.util.stream.Collectors; -import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.plugins.document.UpdateOp.Condition; import org.apache.jackrabbit.oak.plugins.document.cache.CacheInvalidationStats; import org.apache.jackrabbit.oak.plugins.document.util.Utils; @@ -431,7 +431,7 @@ T findAndUpdate(Collection collection, * @return status information about the cache */ @Nullable - Iterable getCacheStats(); + Iterable getCacheStats(); /** * @return description of the underlying storage. diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/JournalDiffLoader.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/JournalDiffLoader.java index 8951cb1dd4f..4dbe51dacea 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/JournalDiffLoader.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/JournalDiffLoader.java @@ -20,7 +20,7 @@ import java.util.Map; import java.util.concurrent.TimeUnit; -import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.commons.sort.StringSort; import org.apache.jackrabbit.oak.commons.time.Stopwatch; import org.apache.jackrabbit.oak.plugins.document.util.StringValue; @@ -298,7 +298,7 @@ private void trackStats(Path path, @NotNull @Override - Iterable getStats() { + Iterable getStats() { return cache.getStats(); } diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/LocalDiffCache.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/LocalDiffCache.java index a149873c0b9..2eecfa639b2 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/LocalDiffCache.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/LocalDiffCache.java @@ -22,7 +22,7 @@ import org.apache.jackrabbit.oak.cache.CacheValue; import org.apache.jackrabbit.oak.cache.api.Cache; -import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.commons.json.JsopBuilder; import org.apache.jackrabbit.oak.commons.json.JsopReader; import org.apache.jackrabbit.oak.commons.json.JsopTokenizer; @@ -45,11 +45,11 @@ public class LocalDiffCache extends DiffCache { private static int MAX_ENTRY_SIZE = 16 * 1024 * 1024; private final Cache diffCache; - private final CacheStatsAdapter diffCacheStats; + private final CacheStats diffCacheStats; LocalDiffCache(DocumentNodeStoreBuilder builder) { this.diffCache = builder.buildLocalDiffCache(); - this.diffCacheStats = new CacheStatsAdapter(diffCache, + this.diffCacheStats = new CacheStats(diffCache, "Document-LocalDiff", (k, v) -> builder.getWeigher().weigh(k, v), builder.getLocalDiffCacheSize()); } @@ -107,7 +107,7 @@ private boolean exceedsSize(){ @NotNull @Override - public Iterable getStats() { + public Iterable getStats() { return Collections.singleton(diffCacheStats); } diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/MemoryDiffCache.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/MemoryDiffCache.java index 07b8a7e59bf..4565075e522 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/MemoryDiffCache.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/MemoryDiffCache.java @@ -20,7 +20,7 @@ import org.apache.jackrabbit.oak.cache.CacheValue; import org.apache.jackrabbit.oak.cache.api.Cache; -import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.plugins.document.util.StringValue; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -50,12 +50,12 @@ public class MemoryDiffCache extends DiffCache { * Key: PathRev, value: StringValue */ protected final Cache diffCache; - protected final CacheStatsAdapter diffCacheStats; + protected final CacheStats diffCacheStats; protected MemoryDiffCache(DocumentNodeStoreBuilder builder) { diffCache = builder.buildMemoryDiffCache(); - diffCacheStats = new CacheStatsAdapter(diffCache, "Document-MemoryDiff", + diffCacheStats = new CacheStats(diffCache, "Document-MemoryDiff", (k, v) -> builder.getWeigher().weigh(k, v), builder.getMemoryDiffCacheSize()); } @@ -96,7 +96,7 @@ public Entry newEntry(@NotNull RevisionVector from, @NotNull @Override - public Iterable getStats() { + public Iterable getStats() { return Collections.singleton(diffCacheStats); } diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/TieredDiffCache.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/TieredDiffCache.java index 4205a173223..1cbab987399 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/TieredDiffCache.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/TieredDiffCache.java @@ -18,7 +18,7 @@ import org.apache.jackrabbit.oak.cache.api.Cache; import org.apache.jackrabbit.oak.cache.api.CacheBuilder; -import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.commons.collections.IterableUtils; import org.apache.jackrabbit.oak.plugins.document.util.RevisionsKey; import org.jetbrains.annotations.NotNull; @@ -93,7 +93,7 @@ public Entry newEntry(@NotNull RevisionVector from, @NotNull RevisionVector to, @NotNull @Override - public Iterable getStats() { + public Iterable getStats() { return IterableUtils.chainedIterable(localCache.getStats(), memoryCache.getStats()); } diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/cache/NodeDocumentCache.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/cache/NodeDocumentCache.java index 11c097edfb1..2473b759dbf 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/cache/NodeDocumentCache.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/cache/NodeDocumentCache.java @@ -34,7 +34,7 @@ import org.apache.jackrabbit.oak.cache.api.Cache; import org.apache.jackrabbit.oak.cache.CacheValue; -import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.commons.collections.IterableUtils; import org.apache.jackrabbit.oak.plugins.document.Document; import org.apache.jackrabbit.oak.plugins.document.NodeDocument; @@ -50,7 +50,7 @@ public class NodeDocumentCache implements Closeable { private final Cache nodeDocumentsCache; - private final CacheStatsAdapter nodeDocumentsCacheStats; + private final CacheStats nodeDocumentsCacheStats; /** * The previous documents cache @@ -58,16 +58,16 @@ public class NodeDocumentCache implements Closeable { * Key: StringValue, value: NodeDocument */ private final Cache prevDocumentsCache; - private final CacheStatsAdapter prevDocumentsCacheStats; + private final CacheStats prevDocumentsCacheStats; private final NodeDocumentLocks locks; private final List changeTrackers; public NodeDocumentCache(@NotNull Cache nodeDocumentsCache, - @NotNull CacheStatsAdapter nodeDocumentsCacheStats, + @NotNull CacheStats nodeDocumentsCacheStats, @NotNull Cache prevDocumentsCache, - @NotNull CacheStatsAdapter prevDocumentsCacheStats, + @NotNull CacheStats prevDocumentsCacheStats, @NotNull NodeDocumentLocks locks) { this.nodeDocumentsCache = nodeDocumentsCache; this.nodeDocumentsCacheStats = nodeDocumentsCacheStats; @@ -319,7 +319,7 @@ public Iterable values() { return IterableUtils.chainedIterable(nodeDocumentsCache.asMap().values(), prevDocumentsCache.asMap().values()); } - public Iterable getCacheStats() { + public Iterable getCacheStats() { return Arrays.asList(nodeDocumentsCacheStats, prevDocumentsCacheStats); } diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/memory/MemoryDocumentStore.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/memory/MemoryDocumentStore.java index ac7d8a43238..d4b604796c7 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/memory/MemoryDocumentStore.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/memory/MemoryDocumentStore.java @@ -33,7 +33,7 @@ import java.util.concurrent.locks.ReentrantReadWriteLock; import java.util.stream.Collectors; -import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.commons.properties.SystemPropertySupplier; import org.apache.jackrabbit.oak.plugins.document.Collection; import org.apache.jackrabbit.oak.plugins.document.Document; @@ -444,7 +444,7 @@ public WriteConcern getWriteConcern() { } @Override - public Iterable getCacheStats() { + public Iterable getCacheStats() { return null; } diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java index e04bdffc3a7..2e3e5cb86f9 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java @@ -43,7 +43,7 @@ import org.apache.commons.io.IOUtils; import org.apache.jackrabbit.oak.cache.CacheValue; -import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.commons.collections.IterableUtils; import org.apache.jackrabbit.oak.commons.collections.IteratorUtils; import org.apache.jackrabbit.oak.commons.collections.ListUtils; @@ -2085,7 +2085,7 @@ public void dispose() { } @Override - public Iterable getCacheStats() { + public Iterable getCacheStats() { return nodesCache.getCacheStats(); } diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java index 861b1e74294..f08ab0e4c6c 100755 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java @@ -60,7 +60,7 @@ import javax.sql.DataSource; import org.apache.jackrabbit.oak.cache.CacheValue; -import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.commons.collections.IteratorUtils; import org.apache.jackrabbit.oak.commons.collections.ListUtils; import org.apache.jackrabbit.oak.commons.collections.SetUtils; @@ -836,7 +836,7 @@ private T getIfCached(Collection collection, String id, } @Override - public Iterable getCacheStats() { + public Iterable getCacheStats() { return nodesCache.getCacheStats(); } diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/LeaseCheckDocumentStoreWrapper.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/LeaseCheckDocumentStoreWrapper.java index 4bb31a5c973..27340684185 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/LeaseCheckDocumentStoreWrapper.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/LeaseCheckDocumentStoreWrapper.java @@ -22,7 +22,7 @@ import java.util.Map; import java.util.function.Supplier; -import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.plugins.document.ClusterNodeInfo; import org.apache.jackrabbit.oak.plugins.document.Collection; import org.apache.jackrabbit.oak.plugins.document.Document; @@ -213,7 +213,7 @@ public void setReadWriteMode(String readWriteMode) { } @Override - public Iterable getCacheStats() { + public Iterable getCacheStats() { return leaseChecking(delegate::getCacheStats); } diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/LoggingDocumentStoreWrapper.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/LoggingDocumentStoreWrapper.java index a0b327a2c94..b71357aae81 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/LoggingDocumentStoreWrapper.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/LoggingDocumentStoreWrapper.java @@ -20,7 +20,7 @@ import java.util.Map; import java.util.concurrent.Callable; -import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.commons.json.JsopBuilder; import org.apache.jackrabbit.oak.plugins.document.Collection; import org.apache.jackrabbit.oak.plugins.document.Document; @@ -366,7 +366,7 @@ public void setReadWriteMode(String readWriteMode) { } @Override - public Iterable getCacheStats() { + public Iterable getCacheStats() { try { logMethod("getCacheStats"); return logResult(store::getCacheStats); diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/SynchronizingDocumentStoreWrapper.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/SynchronizingDocumentStoreWrapper.java index c61be694501..bc9660ae6eb 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/SynchronizingDocumentStoreWrapper.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/SynchronizingDocumentStoreWrapper.java @@ -19,7 +19,7 @@ import java.util.List; import java.util.Map; -import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.plugins.document.Collection; import org.apache.jackrabbit.oak.plugins.document.Document; import org.apache.jackrabbit.oak.plugins.document.DocumentStore; @@ -154,7 +154,7 @@ public synchronized void setReadWriteMode(String readWriteMode) { } @Override - public synchronized Iterable getCacheStats() { + public synchronized Iterable getCacheStats() { return store.getCacheStats(); } diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/ThrottlingDocumentStoreWrapper.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/ThrottlingDocumentStoreWrapper.java index bdaa55ac98a..c62b6a782a8 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/ThrottlingDocumentStoreWrapper.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/ThrottlingDocumentStoreWrapper.java @@ -16,7 +16,7 @@ */ package org.apache.jackrabbit.oak.plugins.document.util; -import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.plugins.document.Collection; import org.apache.jackrabbit.oak.plugins.document.Document; import org.apache.jackrabbit.oak.plugins.document.DocumentStore; @@ -233,7 +233,7 @@ public void setReadWriteMode(String readWriteMode) { } @Override - public Iterable getCacheStats() { + public Iterable getCacheStats() { return store.getCacheStats(); } diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/TimingDocumentStoreWrapper.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/TimingDocumentStoreWrapper.java index 066f6d3f422..c515d77295a 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/TimingDocumentStoreWrapper.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/TimingDocumentStoreWrapper.java @@ -25,7 +25,7 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicInteger; -import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.plugins.document.Collection; import org.apache.jackrabbit.oak.plugins.document.Document; import org.apache.jackrabbit.oak.plugins.document.DocumentStore; @@ -423,10 +423,10 @@ public void setReadWriteMode(String readWriteMode) { @Override - public Iterable getCacheStats() { + public Iterable getCacheStats() { try { long start = now(); - Iterable result = base.getCacheStats(); + Iterable result = base.getCacheStats(); updateAndLogTimes("getCacheStats", start, 0, 0); return result; } catch (Exception e) { diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/AmnesiaDiffCache.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/AmnesiaDiffCache.java index b7bd403987f..f6e9b1ba383 100644 --- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/AmnesiaDiffCache.java +++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/AmnesiaDiffCache.java @@ -18,7 +18,7 @@ import java.util.Collections; -import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -61,7 +61,7 @@ public boolean done() { @NotNull @Override - public Iterable getStats() { + public Iterable getStats() { return Collections.emptyList(); } diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/CountingDocumentStore.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/CountingDocumentStore.java index 85547a219de..67eb5bc1453 100644 --- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/CountingDocumentStore.java +++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/CountingDocumentStore.java @@ -21,7 +21,7 @@ import java.util.List; import java.util.Map; -import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.plugins.document.cache.CacheInvalidationStats; import org.jetbrains.annotations.NotNull; @@ -215,7 +215,7 @@ public void setReadWriteMode(String readWriteMode) { } @Override - public Iterable getCacheStats() { + public Iterable getCacheStats() { return delegate.getCacheStats(); } diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentMKBuilderTest.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentMKBuilderTest.java index 8e299c55814..4a6a1363acf 100644 --- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentMKBuilderTest.java +++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentMKBuilderTest.java @@ -18,7 +18,7 @@ import com.mongodb.client.MongoClient; -import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.commons.collections.IterableUtils; import org.junit.Test; import org.junit.runner.RunWith; @@ -74,11 +74,11 @@ protected DocumentMK.Builder newBuilder(MongoClient client, String dbName) throw @Test public void lazyInit() throws Exception { - Iterable cacheStats = mk.getDocumentStore().getCacheStats(); + Iterable cacheStats = mk.getDocumentStore().getCacheStats(); assertNotNull(cacheStats); assertEquals(2, IterableUtils.size(cacheStats)); - CacheStatsAdapter docCacheStats = IterableUtils.get(cacheStats, 0); - CacheStatsAdapter prevDocCacheStats = IterableUtils.get(cacheStats, 1); + CacheStats docCacheStats = IterableUtils.get(cacheStats, 0); + CacheStats prevDocCacheStats = IterableUtils.get(cacheStats, 1); assertEquals("Document-Documents", docCacheStats.getName()); assertEquals("Document-PrevDocuments", prevDocCacheStats.getName()); assertEquals(expectedDocCacheSize, docCacheStats.getMaxTotalWeight()); diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreBuilderTest.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreBuilderTest.java index 2fdc1a17126..d37acf496e4 100644 --- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreBuilderTest.java +++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreBuilderTest.java @@ -64,7 +64,7 @@ public void buildNodeDocumentCacheStatsAreNonEmpty() { DocumentStore store = new MemoryDocumentStore(); NodeDocumentCache cache = DocumentNodeStoreBuilder.newDocumentNodeStoreBuilder() .buildNodeDocumentCache(store, new StripedNodeDocumentLocks()); - Iterable stats = cache.getCacheStats(); + Iterable stats = cache.getCacheStats(); Assert.assertNotNull(stats); Assert.assertTrue(stats.iterator().hasNext()); } diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreDiffTest.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreDiffTest.java index bd1834cb5f9..00612485e0e 100644 --- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreDiffTest.java +++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreDiffTest.java @@ -17,7 +17,7 @@ package org.apache.jackrabbit.oak.plugins.document; import org.apache.jackrabbit.oak.api.CommitFailedException; -import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.spi.commit.CommitInfo; import org.apache.jackrabbit.oak.spi.commit.EmptyHook; import org.apache.jackrabbit.oak.spi.state.DefaultNodeStateDiff; @@ -63,14 +63,14 @@ public void diff() throws Exception { merge(store, builder); } - Iterable stats = store.getDiffCacheStats(); - for (CacheStatsAdapter cs : stats) { + Iterable stats = store.getDiffCacheStats(); + for (CacheStats cs : stats) { cs.resetStats(); } // must not cause cache misses Diff.perform(before, after); - for (CacheStatsAdapter cs : stats) { + for (CacheStats cs : stats) { assertEquals(0, cs.getMissCount()); } } diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentStoreWrapper.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentStoreWrapper.java index c7a4060107a..da286e36e1c 100644 --- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentStoreWrapper.java +++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentStoreWrapper.java @@ -19,7 +19,7 @@ import java.util.List; import java.util.Map; -import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.plugins.document.cache.CacheInvalidationStats; import org.jetbrains.annotations.NotNull; @@ -150,7 +150,7 @@ public void setReadWriteMode(String readWriteMode) { } @Override - public Iterable getCacheStats() { + public Iterable getCacheStats() { return store.getCacheStats(); } diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/LocalDiffCacheTest.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/LocalDiffCacheTest.java index 102f4e30c1e..baa9e29047e 100644 --- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/LocalDiffCacheTest.java +++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/LocalDiffCacheTest.java @@ -22,7 +22,7 @@ import java.util.Map; import org.apache.jackrabbit.oak.api.CommitFailedException; -import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.plugins.document.LocalDiffCache.Diff; import org.apache.jackrabbit.oak.plugins.document.memory.MemoryDocumentStore; import org.apache.jackrabbit.oak.spi.commit.CommitInfo; @@ -56,7 +56,7 @@ public void simpleDiff() throws Exception{ o.reset(); DiffCache cache = store.getDiffCache(); - Iterable stats = cache.getStats(); + Iterable stats = cache.getStats(); NodeBuilder builder = store.getRoot().builder(); builder.child("a").child("a2").setProperty("foo", "bar"); @@ -118,24 +118,24 @@ private static DocumentMK create(DocumentStore ds, int clusterId){ .open(); } - private static long getHitCount(Iterable stats) { + private static long getHitCount(Iterable stats) { long hitCount = 0; - for (CacheStatsAdapter cs : stats) { + for (CacheStats cs : stats) { hitCount += cs.getHitCount(); } return hitCount; } - private static long getMissCount(Iterable stats) { + private static long getMissCount(Iterable stats) { long missCount = 0; - for (CacheStatsAdapter cs : stats) { + for (CacheStats cs : stats) { missCount += cs.getMissCount(); } return missCount; } - private static void resetStats(Iterable stats) { - for (CacheStatsAdapter cs : stats) { + private static void resetStats(Iterable stats) { + for (CacheStats cs : stats) { cs.resetStats(); } } diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/MemoryDiffCacheTest.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/MemoryDiffCacheTest.java index 9e0d0839739..21c500b49c9 100644 --- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/MemoryDiffCacheTest.java +++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/MemoryDiffCacheTest.java @@ -18,7 +18,7 @@ import java.util.UUID; -import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.junit.Rule; import org.junit.Test; @@ -68,7 +68,7 @@ public void getStatsReturnsNonEmptyIterable() { DiffCache cache = new MemoryDiffCache(builderProvider.newBuilder() .setCacheSegmentCount(1) .memoryCacheDistribution(0, 0, 0, 99, 0)); - Iterable statsIterable = cache.getStats(); + Iterable statsIterable = cache.getStats(); assertNotNull(statsIterable); assertTrue(statsIterable.iterator().hasNext()); } diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/NodeStoreDiffTest.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/NodeStoreDiffTest.java index cf1b8a1211f..c301d68aa38 100644 --- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/NodeStoreDiffTest.java +++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/NodeStoreDiffTest.java @@ -25,7 +25,7 @@ import java.util.Set; import org.apache.jackrabbit.oak.api.CommitFailedException; -import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.commons.PathUtils; import org.apache.jackrabbit.oak.plugins.commit.AnnotatingConflictHandler; import org.apache.jackrabbit.oak.plugins.commit.ConflictHook; @@ -228,7 +228,7 @@ public void diffBranchBase() throws Exception { private long diffCacheRequests(DocumentNodeStore ns) { long num = 0; - for (CacheStatsAdapter stats : ns.getDiffCacheStats()) { + for (CacheStats stats : ns.getDiffCacheStats()) { num += stats.getRequestCount(); } return num; diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/TieredDiffCacheTest.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/TieredDiffCacheTest.java index 37496f1e94c..1dc85336acb 100644 --- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/TieredDiffCacheTest.java +++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/TieredDiffCacheTest.java @@ -18,7 +18,7 @@ import java.lang.reflect.Field; -import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.junit.Rule; import org.junit.Test; @@ -88,7 +88,7 @@ public void newEntryExternalPopulatesMemoryCache() { @Test public void getStatsReturnsNonEmptyIterable() { TieredDiffCache cache = buildCache(); - Iterable stats = cache.getStats(); + Iterable stats = cache.getStats(); assertNotNull(stats); assertTrue(stats.iterator().hasNext()); } diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/cache/CacheChangesTrackerTest.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/cache/CacheChangesTrackerTest.java index a06a9104350..e3cde765105 100644 --- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/cache/CacheChangesTrackerTest.java +++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/cache/CacheChangesTrackerTest.java @@ -28,7 +28,7 @@ import org.apache.jackrabbit.oak.cache.CacheLIRS; import org.apache.jackrabbit.oak.cache.api.Cache; import org.apache.jackrabbit.oak.cache.CacheValue; -import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.plugins.document.Collection; import org.apache.jackrabbit.oak.plugins.document.DocumentStore; import org.apache.jackrabbit.oak.plugins.document.NodeDocument; @@ -153,8 +153,8 @@ public void testOnlyExternalChanges() { private NodeDocumentCache createCache() { Cache nodeDocumentsCache = (new CacheLIRS(10)).asOakCache(); Cache prevDocumentsCache = (new CacheLIRS(10)).asOakCache(); - CacheStatsAdapter nodeDocumentsCacheStats = Mockito.mock(CacheStatsAdapter.class); - CacheStatsAdapter prevDocumentsCacheStats = Mockito.mock(CacheStatsAdapter.class); + CacheStats nodeDocumentsCacheStats = Mockito.mock(CacheStats.class); + CacheStats prevDocumentsCacheStats = Mockito.mock(CacheStats.class); NodeDocumentLocks locks = new StripedNodeDocumentLocks(); return new NodeDocumentCache(nodeDocumentsCache, nodeDocumentsCacheStats, prevDocumentsCache, prevDocumentsCacheStats, locks); } diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/cache/NodeDocumentCacheTest.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/cache/NodeDocumentCacheTest.java index 47c6192a189..95ec0567a10 100644 --- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/cache/NodeDocumentCacheTest.java +++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/cache/NodeDocumentCacheTest.java @@ -16,7 +16,7 @@ */ package org.apache.jackrabbit.oak.plugins.document.cache; -import org.apache.jackrabbit.oak.cache.api.CacheStatsAdapter; +import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.apache.jackrabbit.oak.plugins.document.Document; import org.apache.jackrabbit.oak.plugins.document.DocumentStore; import org.apache.jackrabbit.oak.plugins.document.NodeDocument; @@ -126,7 +126,7 @@ public void invalidateRemovesDocumentFromCache() { @Test public void getCacheStatsReturnsNonEmptyIterable() { - Iterable statsIterable = cache.getCacheStats(); + Iterable statsIterable = cache.getCacheStats(); assertNotNull(statsIterable); assertTrue(statsIterable.iterator().hasNext()); } From fa93b81031dff1ab93165d1e337b2e7c1531c625 Mon Sep 17 00:00:00 2001 From: rishabhdaim Date: Thu, 16 Apr 2026 16:53:03 +0530 Subject: [PATCH 05/11] OAK-12162 : moved cachestats and cachestatssnapshot in same package as that of abstractcachestats --- .../oak/plugins/blob/CachingBlobStore.java | 2 +- .../oak/plugins/blob/FileCache.java | 2 +- .../blob/datastore/DataStoreBlobStore.java | 2 +- .../oak/cache/AbstractCacheStats.java | 1 - .../oak/cache/{api => }/CacheStats.java | 5 ++-- .../cache/{api => }/CacheStatsSnapshot.java | 24 +++++++++++++++++-- .../jackrabbit/oak/cache/api/Cache.java | 1 + .../impl/caffeine/CaffeineCacheAdapter.java | 2 +- .../oak/cache/impl/lirs/LirsCacheAdapter.java | 2 +- .../oak/cache/AbstractCacheStatsTest.java | 1 - ...sTest.java => CacheStatsSnapshotTest.java} | 3 ++- .../oak/cache/impl/CacheBuilderTest.java | 4 ++-- .../caffeine/CaffeineCacheAdapterTest.java | 2 +- .../cache/impl/lirs/LirsCacheAdapterTest.java | 2 +- .../oak/cache/impl/CacheStatsMetricsTest.java | 2 +- .../lucene/LuceneIndexProviderService.java | 2 +- .../document/DocumentStoreIndexerBase.java | 2 +- .../index/search/ExtractedTextCache.java | 2 +- .../RemotePersistentCacheService.java | 2 +- .../oak/segment/CachingSegmentReader.java | 2 +- .../jackrabbit/oak/segment/ReaderCache.java | 2 +- .../jackrabbit/oak/segment/RecordCache.java | 2 +- .../oak/segment/RecordCacheStats.java | 2 +- .../jackrabbit/oak/segment/SegmentCache.java | 2 +- .../segment/SegmentNodeStoreRegistrar.java | 2 +- .../oak/segment/WriterCacheManager.java | 14 ++++------- .../oak/segment/file/PriorityCache.java | 2 +- .../persistentcache/SegmentCacheStats.java | 2 +- .../oak/plugins/document/DiffCache.java | 2 +- .../plugins/document/DocumentNodeStore.java | 2 +- .../document/DocumentNodeStoreBuilder.java | 2 +- .../document/DocumentNodeStoreService.java | 2 +- .../oak/plugins/document/DocumentStore.java | 2 +- .../plugins/document/JournalDiffLoader.java | 2 +- .../oak/plugins/document/LocalDiffCache.java | 2 +- .../oak/plugins/document/MemoryDiffCache.java | 2 +- .../oak/plugins/document/TieredDiffCache.java | 2 +- .../document/cache/NodeDocumentCache.java | 2 +- .../document/memory/MemoryDocumentStore.java | 2 +- .../document/mongo/MongoDocumentStore.java | 2 +- .../document/persistentCache/NodeCache.java | 2 +- .../document/rdb/RDBDocumentStore.java | 2 +- .../util/LeaseCheckDocumentStoreWrapper.java | 2 +- .../util/LoggingDocumentStoreWrapper.java | 2 +- .../SynchronizingDocumentStoreWrapper.java | 2 +- .../util/ThrottlingDocumentStoreWrapper.java | 2 +- .../util/TimingDocumentStoreWrapper.java | 2 +- .../plugins/document/AmnesiaDiffCache.java | 2 +- .../document/CountingDocumentStore.java | 2 +- .../document/DocumentMKBuilderTest.java | 2 +- .../document/DocumentNodeStoreDiffTest.java | 2 +- .../document/DocumentStoreWrapper.java | 2 +- .../plugins/document/LocalDiffCacheTest.java | 2 +- .../plugins/document/MemoryDiffCacheTest.java | 2 +- .../plugins/document/NodeStoreDiffTest.java | 2 +- .../plugins/document/TieredDiffCacheTest.java | 2 +- .../cache/CacheChangesTrackerTest.java | 2 +- .../document/cache/NodeDocumentCacheTest.java | 2 +- 58 files changed, 84 insertions(+), 69 deletions(-) rename oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/{api => }/CacheStats.java (94%) rename oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/{api => }/CacheStatsSnapshot.java (84%) rename oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/api/{CacheStatsTest.java => CacheStatsSnapshotTest.java} (98%) diff --git a/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/CachingBlobStore.java b/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/CachingBlobStore.java index 3bbd16fb32b..63507522450 100644 --- a/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/CachingBlobStore.java +++ b/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/CachingBlobStore.java @@ -17,7 +17,7 @@ package org.apache.jackrabbit.oak.plugins.blob; import org.apache.jackrabbit.oak.cache.CacheLIRS; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.CacheStats; import org.apache.jackrabbit.oak.cache.api.LoadingCache; import org.apache.jackrabbit.oak.cache.api.Weigher; import org.apache.jackrabbit.oak.commons.StringUtils; diff --git a/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/FileCache.java b/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/FileCache.java index 8c34d663bb7..e1a4c9f0f21 100644 --- a/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/FileCache.java +++ b/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/FileCache.java @@ -39,7 +39,7 @@ import org.apache.jackrabbit.oak.cache.CacheLIRS; import org.apache.jackrabbit.oak.cache.api.Cache; import org.apache.jackrabbit.oak.cache.api.CacheLoader; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.CacheStats; import org.apache.jackrabbit.oak.cache.api.Weigher; import org.apache.jackrabbit.oak.commons.StringUtils; import org.apache.jackrabbit.oak.commons.concurrent.ExecutorCloser; diff --git a/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/datastore/DataStoreBlobStore.java b/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/datastore/DataStoreBlobStore.java index 6e858c1bcd0..e757dec37d9 100644 --- a/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/datastore/DataStoreBlobStore.java +++ b/oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/datastore/DataStoreBlobStore.java @@ -53,7 +53,7 @@ import org.apache.jackrabbit.oak.api.blob.BlobUpload; import org.apache.jackrabbit.oak.api.blob.BlobUploadOptions; import org.apache.jackrabbit.oak.cache.api.Cache; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.CacheStats; import org.apache.jackrabbit.oak.cache.api.Weigher; import org.apache.jackrabbit.oak.commons.StringUtils; import org.apache.jackrabbit.oak.commons.collections.IteratorUtils; diff --git a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/AbstractCacheStats.java b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/AbstractCacheStats.java index 07fe7e09695..6fdafe264ad 100644 --- a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/AbstractCacheStats.java +++ b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/AbstractCacheStats.java @@ -26,7 +26,6 @@ import java.util.concurrent.TimeUnit; import org.apache.jackrabbit.oak.api.jmx.CacheStatsMBean; -import org.apache.jackrabbit.oak.cache.api.CacheStatsSnapshot; import org.apache.jackrabbit.oak.commons.jmx.AnnotatedStandardMBean; import org.jetbrains.annotations.NotNull; diff --git a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/CacheStats.java b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/CacheStats.java similarity index 94% rename from oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/CacheStats.java rename to oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/CacheStats.java index 14433f982d9..78749ef3d58 100644 --- a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/CacheStats.java +++ b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/CacheStats.java @@ -14,11 +14,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.jackrabbit.oak.cache.api; +package org.apache.jackrabbit.oak.cache; import java.util.Map; -import org.apache.jackrabbit.oak.cache.AbstractCacheStats; +import org.apache.jackrabbit.oak.cache.api.Cache; +import org.apache.jackrabbit.oak.cache.api.Weigher; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/CacheStatsSnapshot.java b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/CacheStatsSnapshot.java similarity index 84% rename from oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/CacheStatsSnapshot.java rename to oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/CacheStatsSnapshot.java index 80fbb0805e8..7fdeaed4915 100644 --- a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/CacheStatsSnapshot.java +++ b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/CacheStatsSnapshot.java @@ -14,8 +14,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.jackrabbit.oak.cache.api; +package org.apache.jackrabbit.oak.cache; +import org.apache.jackrabbit.oak.cache.api.Cache; import org.jetbrains.annotations.NotNull; /** @@ -130,4 +131,23 @@ public CacheStatsSnapshot minus(@NotNull CacheStatsSnapshot other) { Math.max(0, evictionCount - other.evictionCount) ); } -} + + /** + * Returns the sum of this snapshot and an earlier {@code other} + * snapshot, useful for computing total deltas. + * + * @param other the earlier snapshot to add (must not be null) + * @return a new snapshot representing the total + */ + @NotNull + public CacheStatsSnapshot plus(@NotNull CacheStatsSnapshot other) { + return new CacheStatsSnapshot( + Long.sum(hitCount, other.hitCount), + Long.sum(missCount, other.missCount), + Long.sum(loadSuccessCount, other.loadSuccessCount), + Long.sum(loadFailureCount, other.loadFailureCount), + Long.sum(totalLoadTime, other.totalLoadTime), + Long.sum(evictionCount, other.evictionCount) + ); + } +} \ No newline at end of file diff --git a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/Cache.java b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/Cache.java index ed4bb976b48..59d29b445e4 100644 --- a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/Cache.java +++ b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/Cache.java @@ -20,6 +20,7 @@ import java.util.concurrent.ConcurrentMap; import java.util.function.Function; +import org.apache.jackrabbit.oak.cache.CacheStatsSnapshot; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.osgi.annotation.versioning.ProviderType; diff --git a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/impl/caffeine/CaffeineCacheAdapter.java b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/impl/caffeine/CaffeineCacheAdapter.java index cc11a8cd3a3..3aca4d0ccca 100644 --- a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/impl/caffeine/CaffeineCacheAdapter.java +++ b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/impl/caffeine/CaffeineCacheAdapter.java @@ -21,7 +21,7 @@ import java.util.function.Function; import com.github.benmanes.caffeine.cache.RemovalCause; -import org.apache.jackrabbit.oak.cache.api.CacheStatsSnapshot; +import org.apache.jackrabbit.oak.cache.CacheStatsSnapshot; import org.apache.jackrabbit.oak.cache.api.Cache; import org.apache.jackrabbit.oak.cache.api.EvictionCause; import org.jetbrains.annotations.NotNull; diff --git a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/impl/lirs/LirsCacheAdapter.java b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/impl/lirs/LirsCacheAdapter.java index 02fbf7f44c9..a812c8af16c 100644 --- a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/impl/lirs/LirsCacheAdapter.java +++ b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/impl/lirs/LirsCacheAdapter.java @@ -24,7 +24,7 @@ import org.apache.jackrabbit.guava.common.cache.RemovalCause; import org.apache.jackrabbit.oak.cache.CacheLIRS; -import org.apache.jackrabbit.oak.cache.api.CacheStatsSnapshot; +import org.apache.jackrabbit.oak.cache.CacheStatsSnapshot; import org.apache.jackrabbit.oak.cache.api.Cache; import org.apache.jackrabbit.oak.cache.api.EvictionCause; import org.jetbrains.annotations.NotNull; diff --git a/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/AbstractCacheStatsTest.java b/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/AbstractCacheStatsTest.java index 7a4c92a38ff..7afb7d601c5 100644 --- a/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/AbstractCacheStatsTest.java +++ b/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/AbstractCacheStatsTest.java @@ -18,7 +18,6 @@ import java.util.concurrent.ExecutionException; -import org.apache.jackrabbit.oak.cache.api.CacheStats; import org.junit.Assert; import org.junit.Before; import org.junit.Test; diff --git a/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/api/CacheStatsTest.java b/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/api/CacheStatsSnapshotTest.java similarity index 98% rename from oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/api/CacheStatsTest.java rename to oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/api/CacheStatsSnapshotTest.java index e33f80fb905..6de1e1d05c0 100644 --- a/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/api/CacheStatsTest.java +++ b/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/api/CacheStatsSnapshotTest.java @@ -16,11 +16,12 @@ */ package org.apache.jackrabbit.oak.cache.api; +import org.apache.jackrabbit.oak.cache.CacheStatsSnapshot; import org.junit.Assert; import org.junit.Test; /** Tests for {@link CacheStatsSnapshot}. */ -public class CacheStatsTest { +public class CacheStatsSnapshotTest { private CacheStatsSnapshot stats(long hits, long misses, long loadSuccess, long loadFail, long loadTime, long evictions) { diff --git a/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/impl/CacheBuilderTest.java b/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/impl/CacheBuilderTest.java index cebc5d61362..1625b0bebdb 100644 --- a/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/impl/CacheBuilderTest.java +++ b/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/impl/CacheBuilderTest.java @@ -22,11 +22,11 @@ import java.util.concurrent.atomic.AtomicReference; import org.apache.jackrabbit.oak.cache.api.Cache; -import org.apache.jackrabbit.oak.cache.api.CacheStatsSnapshot; +import org.apache.jackrabbit.oak.cache.CacheStatsSnapshot; import org.apache.jackrabbit.oak.cache.api.LoadingCache; import org.apache.jackrabbit.oak.cache.api.EvictionCause; import org.apache.jackrabbit.oak.cache.api.CacheBuilder; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.CacheStats; import org.apache.jackrabbit.oak.cache.impl.caffeine.CaffeineCacheAdapter; import org.apache.jackrabbit.oak.cache.impl.caffeine.CaffeineLoadingCacheAdapter; import org.junit.Assert; diff --git a/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/impl/caffeine/CaffeineCacheAdapterTest.java b/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/impl/caffeine/CaffeineCacheAdapterTest.java index cda9f1ff4da..84e70b2d242 100644 --- a/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/impl/caffeine/CaffeineCacheAdapterTest.java +++ b/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/impl/caffeine/CaffeineCacheAdapterTest.java @@ -20,7 +20,7 @@ import com.github.benmanes.caffeine.cache.Caffeine; import com.github.benmanes.caffeine.cache.RemovalCause; -import org.apache.jackrabbit.oak.cache.api.CacheStatsSnapshot; +import org.apache.jackrabbit.oak.cache.CacheStatsSnapshot; import org.apache.jackrabbit.oak.cache.api.EvictionCause; import org.junit.Assert; import org.junit.Test; diff --git a/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/impl/lirs/LirsCacheAdapterTest.java b/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/impl/lirs/LirsCacheAdapterTest.java index b231067c660..760964483db 100644 --- a/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/impl/lirs/LirsCacheAdapterTest.java +++ b/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/impl/lirs/LirsCacheAdapterTest.java @@ -21,7 +21,7 @@ import org.apache.jackrabbit.guava.common.cache.RemovalCause; import org.apache.jackrabbit.oak.cache.CacheLIRS; -import org.apache.jackrabbit.oak.cache.api.CacheStatsSnapshot; +import org.apache.jackrabbit.oak.cache.CacheStatsSnapshot; import org.apache.jackrabbit.oak.cache.api.EvictionCause; import org.junit.Assert; import org.junit.Test; diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/cache/impl/CacheStatsMetricsTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/cache/impl/CacheStatsMetricsTest.java index 9a3deb4304d..1112ad8cb07 100644 --- a/oak-core/src/test/java/org/apache/jackrabbit/oak/cache/impl/CacheStatsMetricsTest.java +++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/cache/impl/CacheStatsMetricsTest.java @@ -26,7 +26,7 @@ import org.apache.jackrabbit.oak.api.jmx.CacheStatsMBean; import org.apache.jackrabbit.oak.cache.AbstractCacheStats; -import org.apache.jackrabbit.oak.cache.api.CacheStatsSnapshot; +import org.apache.jackrabbit.oak.cache.CacheStatsSnapshot; import org.jetbrains.annotations.NotNull; import org.junit.Test; diff --git a/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexProviderService.java b/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexProviderService.java index 33931448797..342c6ac031b 100644 --- a/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexProviderService.java +++ b/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexProviderService.java @@ -34,7 +34,7 @@ import org.apache.commons.io.FilenameUtils; import org.apache.jackrabbit.oak.api.jmx.CacheStatsMBean; import org.apache.jackrabbit.oak.api.jmx.CheckpointMBean; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.CacheStats; import org.apache.jackrabbit.oak.commons.internal.concurrent.ExecutorHelper; import org.apache.jackrabbit.oak.osgi.OsgiWhiteboard; import org.apache.jackrabbit.oak.plugins.document.spi.JournalPropertyService; diff --git a/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/DocumentStoreIndexerBase.java b/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/DocumentStoreIndexerBase.java index 096612305c0..6ac22bb57f2 100644 --- a/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/DocumentStoreIndexerBase.java +++ b/oak-run-commons/src/main/java/org/apache/jackrabbit/oak/index/indexer/document/DocumentStoreIndexerBase.java @@ -21,7 +21,7 @@ import com.codahale.metrics.MetricRegistry; import com.mongodb.ConnectionString; import org.apache.jackrabbit.oak.api.CommitFailedException; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.CacheStats; import org.apache.jackrabbit.oak.commons.PathUtils; import org.apache.jackrabbit.oak.commons.concurrent.ExecutorCloser; import org.apache.jackrabbit.oak.commons.pio.Closer; diff --git a/oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/ExtractedTextCache.java b/oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/ExtractedTextCache.java index 117a58dae74..515dca76071 100644 --- a/oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/ExtractedTextCache.java +++ b/oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/ExtractedTextCache.java @@ -40,7 +40,7 @@ import org.apache.jackrabbit.oak.api.Blob; import org.apache.jackrabbit.oak.cache.api.Cache; import org.apache.jackrabbit.oak.cache.api.CacheBuilder; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.CacheStats; import org.apache.jackrabbit.oak.cache.api.Weigher; import org.apache.jackrabbit.oak.commons.IOUtils; import org.apache.jackrabbit.oak.commons.internal.concurrent.ExecutorHelper; diff --git a/oak-segment-remote/src/main/java/org/apache/jackrabbit/oak/segment/remote/persistentcache/RemotePersistentCacheService.java b/oak-segment-remote/src/main/java/org/apache/jackrabbit/oak/segment/remote/persistentcache/RemotePersistentCacheService.java index 7b3129f169a..a59ba65e817 100644 --- a/oak-segment-remote/src/main/java/org/apache/jackrabbit/oak/segment/remote/persistentcache/RemotePersistentCacheService.java +++ b/oak-segment-remote/src/main/java/org/apache/jackrabbit/oak/segment/remote/persistentcache/RemotePersistentCacheService.java @@ -20,7 +20,7 @@ import static org.apache.jackrabbit.oak.commons.IOUtils.closeQuietly; import org.apache.jackrabbit.oak.api.jmx.CacheStatsMBean; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.CacheStats; import org.apache.jackrabbit.oak.commons.pio.Closer; import org.apache.jackrabbit.oak.osgi.OsgiWhiteboard; import org.apache.jackrabbit.oak.segment.spi.monitor.RoleStatisticsProvider; diff --git a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/CachingSegmentReader.java b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/CachingSegmentReader.java index 6bd79f5b38d..a3200eb2b51 100644 --- a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/CachingSegmentReader.java +++ b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/CachingSegmentReader.java @@ -27,7 +27,7 @@ import org.apache.jackrabbit.oak.api.PropertyState; import org.apache.jackrabbit.oak.api.Type; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.CacheStats; import org.apache.jackrabbit.oak.plugins.memory.PropertyStates; import org.apache.jackrabbit.oak.segment.util.SafeEncode; import org.apache.jackrabbit.oak.spi.blob.BlobStore; diff --git a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/ReaderCache.java b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/ReaderCache.java index 87d635b1ca4..5b684edf03b 100644 --- a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/ReaderCache.java +++ b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/ReaderCache.java @@ -27,7 +27,7 @@ import org.apache.jackrabbit.oak.cache.CacheLIRS; import org.apache.jackrabbit.oak.cache.api.Cache; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.CacheStats; import org.apache.jackrabbit.oak.cache.api.Weigher; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/RecordCache.java b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/RecordCache.java index 76016737431..46c5f77e695 100644 --- a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/RecordCache.java +++ b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/RecordCache.java @@ -24,7 +24,7 @@ import java.util.function.Supplier; import org.apache.jackrabbit.oak.cache.api.CacheBuilder; -import org.apache.jackrabbit.oak.cache.api.CacheStatsSnapshot; +import org.apache.jackrabbit.oak.cache.CacheStatsSnapshot; import org.apache.jackrabbit.oak.cache.api.Weigher; import org.jetbrains.annotations.NotNull; diff --git a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/RecordCacheStats.java b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/RecordCacheStats.java index 8ddef871521..76a70e0b501 100644 --- a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/RecordCacheStats.java +++ b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/RecordCacheStats.java @@ -23,7 +23,7 @@ import java.util.function.Supplier; import org.apache.jackrabbit.oak.cache.AbstractCacheStats; -import org.apache.jackrabbit.oak.cache.api.CacheStatsSnapshot; +import org.apache.jackrabbit.oak.cache.CacheStatsSnapshot; import org.jetbrains.annotations.NotNull; /** diff --git a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentCache.java b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentCache.java index 57540613380..28bbb0d4622 100644 --- a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentCache.java +++ b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentCache.java @@ -31,7 +31,7 @@ import org.apache.jackrabbit.oak.cache.AbstractCacheStats; import org.apache.jackrabbit.oak.cache.api.Cache; import org.apache.jackrabbit.oak.cache.api.CacheBuilder; -import org.apache.jackrabbit.oak.cache.api.CacheStatsSnapshot; +import org.apache.jackrabbit.oak.cache.CacheStatsSnapshot; import org.apache.jackrabbit.oak.cache.api.EvictionCause; import org.apache.jackrabbit.oak.segment.CacheWeights.SegmentCacheWeigher; import org.jetbrains.annotations.NotNull; diff --git a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreRegistrar.java b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreRegistrar.java index acbcb1fb46e..3261d9bec9e 100644 --- a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreRegistrar.java +++ b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentNodeStoreRegistrar.java @@ -30,7 +30,7 @@ import org.apache.jackrabbit.oak.api.jmx.CheckpointMBean; import org.apache.jackrabbit.oak.api.jmx.FileStoreBackupRestoreMBean; import org.apache.jackrabbit.oak.backup.impl.FileStoreBackupRestoreImpl; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.CacheStats; import org.apache.jackrabbit.oak.commons.pio.Closer; import org.apache.jackrabbit.oak.plugins.blob.BlobGC; import org.apache.jackrabbit.oak.plugins.blob.BlobGCMBean; diff --git a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/WriterCacheManager.java b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/WriterCacheManager.java index 95031b0723c..21a749f67e4 100644 --- a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/WriterCacheManager.java +++ b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/WriterCacheManager.java @@ -30,7 +30,7 @@ import java.util.function.Supplier; import org.apache.jackrabbit.oak.api.jmx.CacheStatsMBean; -import org.apache.jackrabbit.oak.cache.api.CacheStatsSnapshot; +import org.apache.jackrabbit.oak.cache.CacheStatsSnapshot; import org.apache.jackrabbit.oak.commons.collections.IteratorUtils; import org.apache.jackrabbit.oak.segment.file.PriorityCache; import org.apache.jackrabbit.oak.stats.StatisticsProvider; @@ -354,17 +354,11 @@ public CacheStatsMBean getTemplateCacheStats() { private static Supplier accumulateRecordCacheStats( final Iterable> caches) { return () -> { - long hits = 0, misses = 0, loads = 0, failures = 0, loadTime = 0, evictions = 0; + CacheStatsSnapshot stats = new CacheStatsSnapshot(0, 0, 0, 0, 0, 0); for (RecordCache cache : caches) { - CacheStatsSnapshot s = cache.getStats(); - hits += s.hitCount(); - misses += s.missCount(); - loads += s.loadSuccessCount(); - failures += s.loadFailureCount(); - loadTime += s.totalLoadTime(); - evictions += s.evictionCount(); + stats = stats.plus(cache.getStats()); } - return new CacheStatsSnapshot(hits, misses, loads, failures, loadTime, evictions); + return stats; }; } diff --git a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/PriorityCache.java b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/PriorityCache.java index 58dc75f6c37..f8fa8521a4e 100644 --- a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/PriorityCache.java +++ b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/PriorityCache.java @@ -37,7 +37,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.apache.jackrabbit.oak.cache.api.CacheStatsSnapshot; +import org.apache.jackrabbit.oak.cache.CacheStatsSnapshot; import org.apache.jackrabbit.oak.cache.api.Weigher; /** diff --git a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/spi/persistence/persistentcache/SegmentCacheStats.java b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/spi/persistence/persistentcache/SegmentCacheStats.java index 49aec4196ed..06e2736d564 100644 --- a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/spi/persistence/persistentcache/SegmentCacheStats.java +++ b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/spi/persistence/persistentcache/SegmentCacheStats.java @@ -24,7 +24,7 @@ import java.util.function.Supplier; import org.apache.jackrabbit.oak.cache.AbstractCacheStats; -import org.apache.jackrabbit.oak.cache.api.CacheStatsSnapshot; +import org.apache.jackrabbit.oak.cache.CacheStatsSnapshot; import org.jetbrains.annotations.NotNull; public class SegmentCacheStats extends AbstractCacheStats { diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DiffCache.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DiffCache.java index 367e136a5bd..c3128cc273e 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DiffCache.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DiffCache.java @@ -16,7 +16,7 @@ */ package org.apache.jackrabbit.oak.plugins.document; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.CacheStats; import org.apache.jackrabbit.oak.commons.json.JsopReader; import org.apache.jackrabbit.oak.commons.json.JsopTokenizer; import org.jetbrains.annotations.NotNull; diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java index b0967730cd2..9943dc9cdd9 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java @@ -76,7 +76,7 @@ import org.apache.jackrabbit.oak.api.Blob; import org.apache.jackrabbit.oak.api.CommitFailedException; import org.apache.jackrabbit.oak.api.PropertyState; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.CacheStats; import org.apache.jackrabbit.oak.commons.PerfLogger; import org.apache.jackrabbit.oak.commons.collections.IterableUtils; import org.apache.jackrabbit.oak.commons.collections.ListUtils; diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreBuilder.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreBuilder.java index 4e9653407ac..e4226c7bc13 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreBuilder.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreBuilder.java @@ -38,7 +38,7 @@ import org.apache.jackrabbit.oak.cache.CacheLIRS; import org.apache.jackrabbit.oak.cache.api.Cache; import org.apache.jackrabbit.oak.cache.api.CacheBuilder; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.CacheStats; import org.apache.jackrabbit.oak.cache.api.Weigher; import org.apache.jackrabbit.oak.cache.AbstractCacheStats; import org.apache.jackrabbit.oak.cache.CacheValue; diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreService.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreService.java index 41ff6973a7a..6e9f95ecd2c 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreService.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreService.java @@ -60,7 +60,7 @@ import org.apache.jackrabbit.oak.api.jmx.CheckpointMBean; import org.apache.jackrabbit.oak.api.jmx.PersistentCacheStatsMBean; import org.apache.jackrabbit.oak.cache.AbstractCacheStats; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.CacheStats; import org.apache.jackrabbit.oak.commons.pio.Closer; import org.apache.jackrabbit.oak.plugins.document.VersionGarbageCollector.VersionGCStats; import org.apache.jackrabbit.oak.plugins.document.mongo.MongoDocumentNodeStoreBuilder; diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentStore.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentStore.java index 2bb1648c348..889446fdc8b 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentStore.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentStore.java @@ -22,7 +22,7 @@ import java.util.Set; import java.util.stream.Collectors; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.CacheStats; import org.apache.jackrabbit.oak.plugins.document.UpdateOp.Condition; import org.apache.jackrabbit.oak.plugins.document.cache.CacheInvalidationStats; import org.apache.jackrabbit.oak.plugins.document.util.Utils; diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/JournalDiffLoader.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/JournalDiffLoader.java index 4dbe51dacea..3667f40ce2b 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/JournalDiffLoader.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/JournalDiffLoader.java @@ -20,7 +20,7 @@ import java.util.Map; import java.util.concurrent.TimeUnit; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.CacheStats; import org.apache.jackrabbit.oak.commons.sort.StringSort; import org.apache.jackrabbit.oak.commons.time.Stopwatch; import org.apache.jackrabbit.oak.plugins.document.util.StringValue; diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/LocalDiffCache.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/LocalDiffCache.java index 2eecfa639b2..7a5d7f518bd 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/LocalDiffCache.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/LocalDiffCache.java @@ -22,7 +22,7 @@ import org.apache.jackrabbit.oak.cache.CacheValue; import org.apache.jackrabbit.oak.cache.api.Cache; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.CacheStats; import org.apache.jackrabbit.oak.commons.json.JsopBuilder; import org.apache.jackrabbit.oak.commons.json.JsopReader; import org.apache.jackrabbit.oak.commons.json.JsopTokenizer; diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/MemoryDiffCache.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/MemoryDiffCache.java index 4565075e522..cde4a196e82 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/MemoryDiffCache.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/MemoryDiffCache.java @@ -20,7 +20,7 @@ import org.apache.jackrabbit.oak.cache.CacheValue; import org.apache.jackrabbit.oak.cache.api.Cache; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.CacheStats; import org.apache.jackrabbit.oak.plugins.document.util.StringValue; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/TieredDiffCache.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/TieredDiffCache.java index 1cbab987399..4e528dc0b58 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/TieredDiffCache.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/TieredDiffCache.java @@ -18,7 +18,7 @@ import org.apache.jackrabbit.oak.cache.api.Cache; import org.apache.jackrabbit.oak.cache.api.CacheBuilder; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.CacheStats; import org.apache.jackrabbit.oak.commons.collections.IterableUtils; import org.apache.jackrabbit.oak.plugins.document.util.RevisionsKey; import org.jetbrains.annotations.NotNull; diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/cache/NodeDocumentCache.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/cache/NodeDocumentCache.java index 2473b759dbf..7ac1ddf5cdc 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/cache/NodeDocumentCache.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/cache/NodeDocumentCache.java @@ -34,7 +34,7 @@ import org.apache.jackrabbit.oak.cache.api.Cache; import org.apache.jackrabbit.oak.cache.CacheValue; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.CacheStats; import org.apache.jackrabbit.oak.commons.collections.IterableUtils; import org.apache.jackrabbit.oak.plugins.document.Document; import org.apache.jackrabbit.oak.plugins.document.NodeDocument; diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/memory/MemoryDocumentStore.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/memory/MemoryDocumentStore.java index d4b604796c7..d28d1696022 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/memory/MemoryDocumentStore.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/memory/MemoryDocumentStore.java @@ -33,7 +33,7 @@ import java.util.concurrent.locks.ReentrantReadWriteLock; import java.util.stream.Collectors; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.CacheStats; import org.apache.jackrabbit.oak.commons.properties.SystemPropertySupplier; import org.apache.jackrabbit.oak.plugins.document.Collection; import org.apache.jackrabbit.oak.plugins.document.Document; diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java index 2e3e5cb86f9..6efdb453f11 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/mongo/MongoDocumentStore.java @@ -43,7 +43,7 @@ import org.apache.commons.io.IOUtils; import org.apache.jackrabbit.oak.cache.CacheValue; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.CacheStats; import org.apache.jackrabbit.oak.commons.collections.IterableUtils; import org.apache.jackrabbit.oak.commons.collections.IteratorUtils; import org.apache.jackrabbit.oak.commons.collections.ListUtils; diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/persistentCache/NodeCache.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/persistentCache/NodeCache.java index 2811d2cb4d7..278272b6691 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/persistentCache/NodeCache.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/persistentCache/NodeCache.java @@ -27,7 +27,7 @@ import java.util.function.Function; import org.apache.jackrabbit.oak.cache.api.Cache; -import org.apache.jackrabbit.oak.cache.api.CacheStatsSnapshot; +import org.apache.jackrabbit.oak.cache.CacheStatsSnapshot; import org.apache.jackrabbit.oak.cache.api.EvictionCause; import org.apache.jackrabbit.oak.cache.CacheValue; import org.apache.jackrabbit.oak.commons.collections.IterableUtils; diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java index f08ab0e4c6c..41aa3c9ceae 100755 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java @@ -60,7 +60,7 @@ import javax.sql.DataSource; import org.apache.jackrabbit.oak.cache.CacheValue; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.CacheStats; import org.apache.jackrabbit.oak.commons.collections.IteratorUtils; import org.apache.jackrabbit.oak.commons.collections.ListUtils; import org.apache.jackrabbit.oak.commons.collections.SetUtils; diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/LeaseCheckDocumentStoreWrapper.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/LeaseCheckDocumentStoreWrapper.java index 27340684185..8ffb8796b12 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/LeaseCheckDocumentStoreWrapper.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/LeaseCheckDocumentStoreWrapper.java @@ -22,7 +22,7 @@ import java.util.Map; import java.util.function.Supplier; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.CacheStats; import org.apache.jackrabbit.oak.plugins.document.ClusterNodeInfo; import org.apache.jackrabbit.oak.plugins.document.Collection; import org.apache.jackrabbit.oak.plugins.document.Document; diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/LoggingDocumentStoreWrapper.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/LoggingDocumentStoreWrapper.java index b71357aae81..79a2c8c3fc5 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/LoggingDocumentStoreWrapper.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/LoggingDocumentStoreWrapper.java @@ -20,7 +20,7 @@ import java.util.Map; import java.util.concurrent.Callable; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.CacheStats; import org.apache.jackrabbit.oak.commons.json.JsopBuilder; import org.apache.jackrabbit.oak.plugins.document.Collection; import org.apache.jackrabbit.oak.plugins.document.Document; diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/SynchronizingDocumentStoreWrapper.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/SynchronizingDocumentStoreWrapper.java index bc9660ae6eb..8b59b5d416a 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/SynchronizingDocumentStoreWrapper.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/SynchronizingDocumentStoreWrapper.java @@ -19,7 +19,7 @@ import java.util.List; import java.util.Map; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.CacheStats; import org.apache.jackrabbit.oak.plugins.document.Collection; import org.apache.jackrabbit.oak.plugins.document.Document; import org.apache.jackrabbit.oak.plugins.document.DocumentStore; diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/ThrottlingDocumentStoreWrapper.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/ThrottlingDocumentStoreWrapper.java index c62b6a782a8..d0c6471cbdb 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/ThrottlingDocumentStoreWrapper.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/ThrottlingDocumentStoreWrapper.java @@ -16,7 +16,7 @@ */ package org.apache.jackrabbit.oak.plugins.document.util; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.CacheStats; import org.apache.jackrabbit.oak.plugins.document.Collection; import org.apache.jackrabbit.oak.plugins.document.Document; import org.apache.jackrabbit.oak.plugins.document.DocumentStore; diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/TimingDocumentStoreWrapper.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/TimingDocumentStoreWrapper.java index c515d77295a..974ef43171b 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/TimingDocumentStoreWrapper.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/util/TimingDocumentStoreWrapper.java @@ -25,7 +25,7 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicInteger; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.CacheStats; import org.apache.jackrabbit.oak.plugins.document.Collection; import org.apache.jackrabbit.oak.plugins.document.Document; import org.apache.jackrabbit.oak.plugins.document.DocumentStore; diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/AmnesiaDiffCache.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/AmnesiaDiffCache.java index f6e9b1ba383..14f18f395a7 100644 --- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/AmnesiaDiffCache.java +++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/AmnesiaDiffCache.java @@ -18,7 +18,7 @@ import java.util.Collections; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.CacheStats; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/CountingDocumentStore.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/CountingDocumentStore.java index 67eb5bc1453..fe200862d7a 100644 --- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/CountingDocumentStore.java +++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/CountingDocumentStore.java @@ -21,7 +21,7 @@ import java.util.List; import java.util.Map; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.CacheStats; import org.apache.jackrabbit.oak.plugins.document.cache.CacheInvalidationStats; import org.jetbrains.annotations.NotNull; diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentMKBuilderTest.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentMKBuilderTest.java index 4a6a1363acf..324473fabf0 100644 --- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentMKBuilderTest.java +++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentMKBuilderTest.java @@ -18,7 +18,7 @@ import com.mongodb.client.MongoClient; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.CacheStats; import org.apache.jackrabbit.oak.commons.collections.IterableUtils; import org.junit.Test; import org.junit.runner.RunWith; diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreDiffTest.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreDiffTest.java index 00612485e0e..e90dcb221a6 100644 --- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreDiffTest.java +++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreDiffTest.java @@ -17,7 +17,7 @@ package org.apache.jackrabbit.oak.plugins.document; import org.apache.jackrabbit.oak.api.CommitFailedException; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.CacheStats; import org.apache.jackrabbit.oak.spi.commit.CommitInfo; import org.apache.jackrabbit.oak.spi.commit.EmptyHook; import org.apache.jackrabbit.oak.spi.state.DefaultNodeStateDiff; diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentStoreWrapper.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentStoreWrapper.java index da286e36e1c..a53007342be 100644 --- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentStoreWrapper.java +++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentStoreWrapper.java @@ -19,7 +19,7 @@ import java.util.List; import java.util.Map; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.CacheStats; import org.apache.jackrabbit.oak.plugins.document.cache.CacheInvalidationStats; import org.jetbrains.annotations.NotNull; diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/LocalDiffCacheTest.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/LocalDiffCacheTest.java index baa9e29047e..38ddb3040f6 100644 --- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/LocalDiffCacheTest.java +++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/LocalDiffCacheTest.java @@ -22,7 +22,7 @@ import java.util.Map; import org.apache.jackrabbit.oak.api.CommitFailedException; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.CacheStats; import org.apache.jackrabbit.oak.plugins.document.LocalDiffCache.Diff; import org.apache.jackrabbit.oak.plugins.document.memory.MemoryDocumentStore; import org.apache.jackrabbit.oak.spi.commit.CommitInfo; diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/MemoryDiffCacheTest.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/MemoryDiffCacheTest.java index 21c500b49c9..a96980e08d7 100644 --- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/MemoryDiffCacheTest.java +++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/MemoryDiffCacheTest.java @@ -18,7 +18,7 @@ import java.util.UUID; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.CacheStats; import org.junit.Rule; import org.junit.Test; diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/NodeStoreDiffTest.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/NodeStoreDiffTest.java index c301d68aa38..c30cde3396b 100644 --- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/NodeStoreDiffTest.java +++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/NodeStoreDiffTest.java @@ -25,7 +25,7 @@ import java.util.Set; import org.apache.jackrabbit.oak.api.CommitFailedException; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.CacheStats; import org.apache.jackrabbit.oak.commons.PathUtils; import org.apache.jackrabbit.oak.plugins.commit.AnnotatingConflictHandler; import org.apache.jackrabbit.oak.plugins.commit.ConflictHook; diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/TieredDiffCacheTest.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/TieredDiffCacheTest.java index 1dc85336acb..0923ca8750a 100644 --- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/TieredDiffCacheTest.java +++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/TieredDiffCacheTest.java @@ -18,7 +18,7 @@ import java.lang.reflect.Field; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.CacheStats; import org.junit.Rule; import org.junit.Test; diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/cache/CacheChangesTrackerTest.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/cache/CacheChangesTrackerTest.java index e3cde765105..bd43c91cd09 100644 --- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/cache/CacheChangesTrackerTest.java +++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/cache/CacheChangesTrackerTest.java @@ -28,7 +28,7 @@ import org.apache.jackrabbit.oak.cache.CacheLIRS; import org.apache.jackrabbit.oak.cache.api.Cache; import org.apache.jackrabbit.oak.cache.CacheValue; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.CacheStats; import org.apache.jackrabbit.oak.plugins.document.Collection; import org.apache.jackrabbit.oak.plugins.document.DocumentStore; import org.apache.jackrabbit.oak.plugins.document.NodeDocument; diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/cache/NodeDocumentCacheTest.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/cache/NodeDocumentCacheTest.java index 95ec0567a10..14f4f988506 100644 --- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/cache/NodeDocumentCacheTest.java +++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/cache/NodeDocumentCacheTest.java @@ -16,7 +16,7 @@ */ package org.apache.jackrabbit.oak.plugins.document.cache; -import org.apache.jackrabbit.oak.cache.api.CacheStats; +import org.apache.jackrabbit.oak.cache.CacheStats; import org.apache.jackrabbit.oak.plugins.document.Document; import org.apache.jackrabbit.oak.plugins.document.DocumentStore; import org.apache.jackrabbit.oak.plugins.document.NodeDocument; From 51cce45cecf4e6e1c588b7dc308e0f5bcf7ed40f Mon Sep 17 00:00:00 2001 From: rishabhdaim Date: Thu, 16 Apr 2026 16:58:08 +0530 Subject: [PATCH 06/11] OAK-12162 : read lastSnapshot with lock inside stats() --- .../org/apache/jackrabbit/oak/cache/AbstractCacheStats.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/AbstractCacheStats.java b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/AbstractCacheStats.java index 6fdafe264ad..7d788de862b 100644 --- a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/AbstractCacheStats.java +++ b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/AbstractCacheStats.java @@ -56,7 +56,11 @@ protected AbstractCacheStats(@NotNull String name) { protected abstract CacheStatsSnapshot getCurrentStats(); private CacheStatsSnapshot stats() { - return getCurrentStats().minus(lastSnapshot); + CacheStatsSnapshot baseline; + synchronized (this) { + baseline = lastSnapshot; + } + return getCurrentStats().minus(baseline); } @Override From 6b5ae46cbcfbd2f84e5961870d87f13b866ea494 Mon Sep 17 00:00:00 2001 From: rishabhdaim Date: Thu, 16 Apr 2026 17:05:56 +0530 Subject: [PATCH 07/11] OAK-12162 : moved cachestatssnapshot back to api package --- .../org/apache/jackrabbit/oak/cache/AbstractCacheStats.java | 1 + .../main/java/org/apache/jackrabbit/oak/cache/CacheStats.java | 1 + .../main/java/org/apache/jackrabbit/oak/cache/api/Cache.java | 1 - .../jackrabbit/oak/cache/{ => api}/CacheStatsSnapshot.java | 3 +-- .../oak/cache/impl/caffeine/CaffeineCacheAdapter.java | 2 +- .../jackrabbit/oak/cache/impl/lirs/LirsCacheAdapter.java | 2 +- .../jackrabbit/oak/cache/api/CacheStatsSnapshotTest.java | 1 - .../org/apache/jackrabbit/oak/cache/impl/CacheBuilderTest.java | 2 +- .../oak/cache/impl/caffeine/CaffeineCacheAdapterTest.java | 2 +- .../jackrabbit/oak/cache/impl/lirs/LirsCacheAdapterTest.java | 2 +- .../jackrabbit/oak/cache/impl/CacheStatsMetricsTest.java | 2 +- .../java/org/apache/jackrabbit/oak/segment/RecordCache.java | 2 +- .../org/apache/jackrabbit/oak/segment/RecordCacheStats.java | 2 +- .../java/org/apache/jackrabbit/oak/segment/SegmentCache.java | 2 +- .../org/apache/jackrabbit/oak/segment/WriterCacheManager.java | 2 +- .../org/apache/jackrabbit/oak/segment/file/PriorityCache.java | 2 +- .../spi/persistence/persistentcache/SegmentCacheStats.java | 2 +- .../oak/plugins/document/persistentCache/NodeCache.java | 2 +- 18 files changed, 16 insertions(+), 17 deletions(-) rename oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/{ => api}/CacheStatsSnapshot.java (98%) diff --git a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/AbstractCacheStats.java b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/AbstractCacheStats.java index 7d788de862b..e2e90fd0732 100644 --- a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/AbstractCacheStats.java +++ b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/AbstractCacheStats.java @@ -26,6 +26,7 @@ import java.util.concurrent.TimeUnit; import org.apache.jackrabbit.oak.api.jmx.CacheStatsMBean; +import org.apache.jackrabbit.oak.cache.api.CacheStatsSnapshot; import org.apache.jackrabbit.oak.commons.jmx.AnnotatedStandardMBean; import org.jetbrains.annotations.NotNull; diff --git a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/CacheStats.java b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/CacheStats.java index 78749ef3d58..d621b9c35b9 100644 --- a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/CacheStats.java +++ b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/CacheStats.java @@ -19,6 +19,7 @@ import java.util.Map; import org.apache.jackrabbit.oak.cache.api.Cache; +import org.apache.jackrabbit.oak.cache.api.CacheStatsSnapshot; import org.apache.jackrabbit.oak.cache.api.Weigher; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/Cache.java b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/Cache.java index 59d29b445e4..ed4bb976b48 100644 --- a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/Cache.java +++ b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/Cache.java @@ -20,7 +20,6 @@ import java.util.concurrent.ConcurrentMap; import java.util.function.Function; -import org.apache.jackrabbit.oak.cache.CacheStatsSnapshot; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.osgi.annotation.versioning.ProviderType; diff --git a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/CacheStatsSnapshot.java b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/CacheStatsSnapshot.java similarity index 98% rename from oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/CacheStatsSnapshot.java rename to oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/CacheStatsSnapshot.java index 7fdeaed4915..929c5026030 100644 --- a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/CacheStatsSnapshot.java +++ b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/CacheStatsSnapshot.java @@ -14,9 +14,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.jackrabbit.oak.cache; +package org.apache.jackrabbit.oak.cache.api; -import org.apache.jackrabbit.oak.cache.api.Cache; import org.jetbrains.annotations.NotNull; /** diff --git a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/impl/caffeine/CaffeineCacheAdapter.java b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/impl/caffeine/CaffeineCacheAdapter.java index 3aca4d0ccca..cc11a8cd3a3 100644 --- a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/impl/caffeine/CaffeineCacheAdapter.java +++ b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/impl/caffeine/CaffeineCacheAdapter.java @@ -21,7 +21,7 @@ import java.util.function.Function; import com.github.benmanes.caffeine.cache.RemovalCause; -import org.apache.jackrabbit.oak.cache.CacheStatsSnapshot; +import org.apache.jackrabbit.oak.cache.api.CacheStatsSnapshot; import org.apache.jackrabbit.oak.cache.api.Cache; import org.apache.jackrabbit.oak.cache.api.EvictionCause; import org.jetbrains.annotations.NotNull; diff --git a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/impl/lirs/LirsCacheAdapter.java b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/impl/lirs/LirsCacheAdapter.java index a812c8af16c..02fbf7f44c9 100644 --- a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/impl/lirs/LirsCacheAdapter.java +++ b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/impl/lirs/LirsCacheAdapter.java @@ -24,7 +24,7 @@ import org.apache.jackrabbit.guava.common.cache.RemovalCause; import org.apache.jackrabbit.oak.cache.CacheLIRS; -import org.apache.jackrabbit.oak.cache.CacheStatsSnapshot; +import org.apache.jackrabbit.oak.cache.api.CacheStatsSnapshot; import org.apache.jackrabbit.oak.cache.api.Cache; import org.apache.jackrabbit.oak.cache.api.EvictionCause; import org.jetbrains.annotations.NotNull; diff --git a/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/api/CacheStatsSnapshotTest.java b/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/api/CacheStatsSnapshotTest.java index 6de1e1d05c0..4820634feca 100644 --- a/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/api/CacheStatsSnapshotTest.java +++ b/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/api/CacheStatsSnapshotTest.java @@ -16,7 +16,6 @@ */ package org.apache.jackrabbit.oak.cache.api; -import org.apache.jackrabbit.oak.cache.CacheStatsSnapshot; import org.junit.Assert; import org.junit.Test; diff --git a/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/impl/CacheBuilderTest.java b/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/impl/CacheBuilderTest.java index 1625b0bebdb..04f040abaf1 100644 --- a/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/impl/CacheBuilderTest.java +++ b/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/impl/CacheBuilderTest.java @@ -22,7 +22,7 @@ import java.util.concurrent.atomic.AtomicReference; import org.apache.jackrabbit.oak.cache.api.Cache; -import org.apache.jackrabbit.oak.cache.CacheStatsSnapshot; +import org.apache.jackrabbit.oak.cache.api.CacheStatsSnapshot; import org.apache.jackrabbit.oak.cache.api.LoadingCache; import org.apache.jackrabbit.oak.cache.api.EvictionCause; import org.apache.jackrabbit.oak.cache.api.CacheBuilder; diff --git a/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/impl/caffeine/CaffeineCacheAdapterTest.java b/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/impl/caffeine/CaffeineCacheAdapterTest.java index 84e70b2d242..cda9f1ff4da 100644 --- a/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/impl/caffeine/CaffeineCacheAdapterTest.java +++ b/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/impl/caffeine/CaffeineCacheAdapterTest.java @@ -20,7 +20,7 @@ import com.github.benmanes.caffeine.cache.Caffeine; import com.github.benmanes.caffeine.cache.RemovalCause; -import org.apache.jackrabbit.oak.cache.CacheStatsSnapshot; +import org.apache.jackrabbit.oak.cache.api.CacheStatsSnapshot; import org.apache.jackrabbit.oak.cache.api.EvictionCause; import org.junit.Assert; import org.junit.Test; diff --git a/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/impl/lirs/LirsCacheAdapterTest.java b/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/impl/lirs/LirsCacheAdapterTest.java index 760964483db..b231067c660 100644 --- a/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/impl/lirs/LirsCacheAdapterTest.java +++ b/oak-core-spi/src/test/java/org/apache/jackrabbit/oak/cache/impl/lirs/LirsCacheAdapterTest.java @@ -21,7 +21,7 @@ import org.apache.jackrabbit.guava.common.cache.RemovalCause; import org.apache.jackrabbit.oak.cache.CacheLIRS; -import org.apache.jackrabbit.oak.cache.CacheStatsSnapshot; +import org.apache.jackrabbit.oak.cache.api.CacheStatsSnapshot; import org.apache.jackrabbit.oak.cache.api.EvictionCause; import org.junit.Assert; import org.junit.Test; diff --git a/oak-core/src/test/java/org/apache/jackrabbit/oak/cache/impl/CacheStatsMetricsTest.java b/oak-core/src/test/java/org/apache/jackrabbit/oak/cache/impl/CacheStatsMetricsTest.java index 1112ad8cb07..9a3deb4304d 100644 --- a/oak-core/src/test/java/org/apache/jackrabbit/oak/cache/impl/CacheStatsMetricsTest.java +++ b/oak-core/src/test/java/org/apache/jackrabbit/oak/cache/impl/CacheStatsMetricsTest.java @@ -26,7 +26,7 @@ import org.apache.jackrabbit.oak.api.jmx.CacheStatsMBean; import org.apache.jackrabbit.oak.cache.AbstractCacheStats; -import org.apache.jackrabbit.oak.cache.CacheStatsSnapshot; +import org.apache.jackrabbit.oak.cache.api.CacheStatsSnapshot; import org.jetbrains.annotations.NotNull; import org.junit.Test; diff --git a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/RecordCache.java b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/RecordCache.java index 46c5f77e695..76016737431 100644 --- a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/RecordCache.java +++ b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/RecordCache.java @@ -24,7 +24,7 @@ import java.util.function.Supplier; import org.apache.jackrabbit.oak.cache.api.CacheBuilder; -import org.apache.jackrabbit.oak.cache.CacheStatsSnapshot; +import org.apache.jackrabbit.oak.cache.api.CacheStatsSnapshot; import org.apache.jackrabbit.oak.cache.api.Weigher; import org.jetbrains.annotations.NotNull; diff --git a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/RecordCacheStats.java b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/RecordCacheStats.java index 76a70e0b501..8ddef871521 100644 --- a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/RecordCacheStats.java +++ b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/RecordCacheStats.java @@ -23,7 +23,7 @@ import java.util.function.Supplier; import org.apache.jackrabbit.oak.cache.AbstractCacheStats; -import org.apache.jackrabbit.oak.cache.CacheStatsSnapshot; +import org.apache.jackrabbit.oak.cache.api.CacheStatsSnapshot; import org.jetbrains.annotations.NotNull; /** diff --git a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentCache.java b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentCache.java index 28bbb0d4622..57540613380 100644 --- a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentCache.java +++ b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentCache.java @@ -31,7 +31,7 @@ import org.apache.jackrabbit.oak.cache.AbstractCacheStats; import org.apache.jackrabbit.oak.cache.api.Cache; import org.apache.jackrabbit.oak.cache.api.CacheBuilder; -import org.apache.jackrabbit.oak.cache.CacheStatsSnapshot; +import org.apache.jackrabbit.oak.cache.api.CacheStatsSnapshot; import org.apache.jackrabbit.oak.cache.api.EvictionCause; import org.apache.jackrabbit.oak.segment.CacheWeights.SegmentCacheWeigher; import org.jetbrains.annotations.NotNull; diff --git a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/WriterCacheManager.java b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/WriterCacheManager.java index 21a749f67e4..16d54af4992 100644 --- a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/WriterCacheManager.java +++ b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/WriterCacheManager.java @@ -30,7 +30,7 @@ import java.util.function.Supplier; import org.apache.jackrabbit.oak.api.jmx.CacheStatsMBean; -import org.apache.jackrabbit.oak.cache.CacheStatsSnapshot; +import org.apache.jackrabbit.oak.cache.api.CacheStatsSnapshot; import org.apache.jackrabbit.oak.commons.collections.IteratorUtils; import org.apache.jackrabbit.oak.segment.file.PriorityCache; import org.apache.jackrabbit.oak.stats.StatisticsProvider; diff --git a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/PriorityCache.java b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/PriorityCache.java index f8fa8521a4e..58dc75f6c37 100644 --- a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/PriorityCache.java +++ b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/PriorityCache.java @@ -37,7 +37,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.apache.jackrabbit.oak.cache.CacheStatsSnapshot; +import org.apache.jackrabbit.oak.cache.api.CacheStatsSnapshot; import org.apache.jackrabbit.oak.cache.api.Weigher; /** diff --git a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/spi/persistence/persistentcache/SegmentCacheStats.java b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/spi/persistence/persistentcache/SegmentCacheStats.java index 06e2736d564..49aec4196ed 100644 --- a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/spi/persistence/persistentcache/SegmentCacheStats.java +++ b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/spi/persistence/persistentcache/SegmentCacheStats.java @@ -24,7 +24,7 @@ import java.util.function.Supplier; import org.apache.jackrabbit.oak.cache.AbstractCacheStats; -import org.apache.jackrabbit.oak.cache.CacheStatsSnapshot; +import org.apache.jackrabbit.oak.cache.api.CacheStatsSnapshot; import org.jetbrains.annotations.NotNull; public class SegmentCacheStats extends AbstractCacheStats { diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/persistentCache/NodeCache.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/persistentCache/NodeCache.java index 278272b6691..2811d2cb4d7 100644 --- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/persistentCache/NodeCache.java +++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/persistentCache/NodeCache.java @@ -27,7 +27,7 @@ import java.util.function.Function; import org.apache.jackrabbit.oak.cache.api.Cache; -import org.apache.jackrabbit.oak.cache.CacheStatsSnapshot; +import org.apache.jackrabbit.oak.cache.api.CacheStatsSnapshot; import org.apache.jackrabbit.oak.cache.api.EvictionCause; import org.apache.jackrabbit.oak.cache.CacheValue; import org.apache.jackrabbit.oak.commons.collections.IterableUtils; From 545ada66c4ef6365d7e5ac3411c8c4ebc6a6b290 Mon Sep 17 00:00:00 2001 From: rishabhdaim Date: Thu, 16 Apr 2026 17:35:42 +0530 Subject: [PATCH 08/11] OAK-12162 : used Math.addExact() in place of Long.sum() --- .../jackrabbit/oak/cache/api/CacheStatsSnapshot.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/CacheStatsSnapshot.java b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/CacheStatsSnapshot.java index 929c5026030..c2f4a14e1f4 100644 --- a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/CacheStatsSnapshot.java +++ b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/CacheStatsSnapshot.java @@ -141,12 +141,12 @@ public CacheStatsSnapshot minus(@NotNull CacheStatsSnapshot other) { @NotNull public CacheStatsSnapshot plus(@NotNull CacheStatsSnapshot other) { return new CacheStatsSnapshot( - Long.sum(hitCount, other.hitCount), - Long.sum(missCount, other.missCount), - Long.sum(loadSuccessCount, other.loadSuccessCount), - Long.sum(loadFailureCount, other.loadFailureCount), - Long.sum(totalLoadTime, other.totalLoadTime), - Long.sum(evictionCount, other.evictionCount) + Math.addExact(hitCount, other.hitCount), + Math.addExact(missCount, other.missCount), + Math.addExact(loadSuccessCount, other.loadSuccessCount), + Math.addExact(loadFailureCount, other.loadFailureCount), + Math.addExact(totalLoadTime, other.totalLoadTime), + Math.addExact(evictionCount, other.evictionCount) ); } } \ No newline at end of file From 760db5dd1d017b0a05c60bc7cbd491cc64dc6dc2 Mon Sep 17 00:00:00 2001 From: rishabhdaim Date: Fri, 17 Apr 2026 12:35:29 +0530 Subject: [PATCH 09/11] OAK-12162 : updated package major version --- .../java/org/apache/jackrabbit/oak/cache/api/package-info.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/package-info.java b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/package-info.java index 4bd384ffb3e..ce415459ccb 100644 --- a/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/package-info.java +++ b/oak-core-spi/src/main/java/org/apache/jackrabbit/oak/cache/api/package-info.java @@ -19,7 +19,7 @@ * For Oak internal use only. Do not use outside Oak components. */ @Internal(since = "1.0.0") -@Version("1.0.0") +@Version("2.0.0") package org.apache.jackrabbit.oak.cache.api; import org.apache.jackrabbit.oak.commons.annotations.Internal; From ad0c3e99458cce07875203c72fc0241f7af28f71 Mon Sep 17 00:00:00 2001 From: rishabhdaim Date: Mon, 20 Apr 2026 13:13:07 +0530 Subject: [PATCH 10/11] OAK-12162 : fixed error while picking oak-elastic-search jar --- oak-it-osgi/test-bundles.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/oak-it-osgi/test-bundles.xml b/oak-it-osgi/test-bundles.xml index 96fdb9928d7..2f3255c6d2d 100644 --- a/oak-it-osgi/test-bundles.xml +++ b/oak-it-osgi/test-bundles.xml @@ -54,7 +54,7 @@ org.apache.jackrabbit:oak-segment-azure org.apache.jackrabbit:oak-jcr org.apache.jackrabbit:oak-lucene - org.apache.jackrabbit:oak-search-elastic + org.apache.jackrabbit:oak-search-elastic:jar org.apache.tika:tika-core org.apache.jackrabbit:oak-blob org.apache.jackrabbit:oak-blob-cloud-azure From 9d8fee3a5ec9f79318400a7084f89e356ea6e3c3 Mon Sep 17 00:00:00 2001 From: rishabhdaim Date: Thu, 7 May 2026 00:12:34 +0530 Subject: [PATCH 11/11] OAK-12162 : rebased with latest trunk --- .../oak/plugins/document/DocumentNodeStoreBuilderTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreBuilderTest.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreBuilderTest.java index d37acf496e4..10f7c1b1415 100644 --- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreBuilderTest.java +++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreBuilderTest.java @@ -21,8 +21,8 @@ import java.lang.reflect.Method; import java.util.Map; +import org.apache.jackrabbit.oak.cache.CacheStats; import org.apache.jackrabbit.oak.cache.CacheValue; -import org.apache.jackrabbit.oak.cache.AbstractCacheStats; import org.apache.jackrabbit.oak.cache.api.Cache; import org.apache.jackrabbit.oak.plugins.document.cache.NodeDocumentCache; import org.apache.jackrabbit.oak.plugins.document.locks.StripedNodeDocumentLocks;