From 5f2f87df5ab2bf3fdee25aed716108b535e9b8ca Mon Sep 17 00:00:00 2001 From: Axel Hanikel Date: Wed, 24 Oct 2018 12:48:59 +0200 Subject: [PATCH] OAK-7864 - Recording read operations to the segment store --- .../apache/jackrabbit/oak/segment/CachingSegmentReader.java | 6 ++++++ .../org/apache/jackrabbit/oak/segment/tool/LoggingHook.java | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) 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 916e2d5209..533dd44aa4 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 @@ -24,11 +24,14 @@ import static com.google.common.base.Preconditions.checkNotNull; import com.google.common.base.Function; import com.google.common.base.Supplier; import org.apache.jackrabbit.oak.cache.CacheStats; +import org.apache.jackrabbit.oak.segment.tool.LoggingHook; import org.apache.jackrabbit.oak.spi.blob.BlobStore; import org.apache.jackrabbit.oak.spi.state.NodeState; import org.apache.jackrabbit.oak.stats.MeterStats; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * This {@code SegmentReader} implementation implements caching for @@ -37,6 +40,7 @@ import org.jetbrains.annotations.Nullable; public class CachingSegmentReader implements SegmentReader { public static final int DEFAULT_STRING_CACHE_MB = 256; public static final int DEFAULT_TEMPLATE_CACHE_MB = 64; + private static final Logger LOG = LoggerFactory.getLogger(LoggingHook.class.getName() + ".reader"); @NotNull private final Supplier writer; @@ -127,6 +131,7 @@ public class CachingSegmentReader implements SegmentReader { @NotNull @Override public SegmentNodeState readNode(@NotNull RecordId id) { + LOG.trace(System.currentTimeMillis() + " " + LoggingHook.urlEncode(Thread.currentThread().getName()) + " n? " + id.toString()); return new SegmentNodeState(this, writer, blobStore, id, readStats); } @@ -140,6 +145,7 @@ public class CachingSegmentReader implements SegmentReader { @Override public SegmentPropertyState readProperty( @NotNull RecordId id, @NotNull PropertyTemplate template) { + LOG.trace(System.currentTimeMillis() + " " + LoggingHook.urlEncode(Thread.currentThread().getName()) + " p? " + id.toString()); return new SegmentPropertyState(this, id, template); } diff --git a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/tool/LoggingHook.java b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/tool/LoggingHook.java index 49890589cb..79626a1507 100644 --- a/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/tool/LoggingHook.java +++ b/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/tool/LoggingHook.java @@ -128,7 +128,7 @@ public class LoggingHook implements CommitHook, NodeStateDiff { return val.toString(); } - private static String urlEncode(String s) { + public static String urlEncode(String s) { String ret; try { ret = URLEncoder.encode(s, "UTF-8").replace("%2F", "/").replace("%3A", ":"); -- 2.17.1