Rishabh Daim created OAK-12216:
----------------------------------

             Summary: clear Segment cache on successful compaction to prevent 
W-TinyLFU admission freeze for new-generation segments
                 Key: OAK-12216
                 URL: https://issues.apache.org/jira/browse/OAK-12216
             Project: Jackrabbit Oak
          Issue Type: Task
            Reporter: Rishabh Daim
            Assignee: Rishabh Daim


*Segment cache (L2)*: Caffeine W-TinyLFU and Guava LRU only learn about 
accesses that go through _SegmentCache.getSegment()_. Production traffic often 
hits _SegmentId.getSegment()_ and returns the memoized segment from L1 without 
touching L2. That made eviction policies act on stale frequency/recency while 
the JVM was still reading “hot” segments from L1 — wrong evictions, extra TAR 
reads, and skewed benchmarks vs reality.

This was working for Guava, since it was using the LRU eviction policy.

*Fix*: On every L1 hit, call _SegmentCache.recordHit(SegmentId)_, which 
performs _cache.getIfPresent(id)_ on the backing L2 so policies see real usage, 
plus existing hit accounting.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to