Francesco Mari created OAK-6919:
-----------------------------------
Summary: SegmentCache might introduce unwanted memory references
to SegmentId instances
Key: OAK-6919
URL: https://issues.apache.org/jira/browse/OAK-6919
Project: Jackrabbit Oak
Issue Type: Improvement
Reporter: Francesco Mari
Assignee: Francesco Mari
Fix For: 1.8, 1.7.12
{{SegmentCache}} contains, through the underlying Guava cache, hard references
to both {{SegmentId}} and {{Segment}} instances. Thus, {{SegmentCache}}
contributes to the computation of in-memory references that, in turn,
constitute the root references of the garbage collection algorithm.
Further investigations are needed to assess this statement but, if
{{SegmentCache}} is proved to be problematic, there are some possible solutions.
For example, {{SegmentCache}} might be reworked to store references to MSB/LSB
pairs as keys, instead of to {{SegmentId}} instances. Moreover, instead of
referencing {{Segment}} instances as values, {{SegmentCache}} might hold
references to their underlying {{ByteBuffer}}. With these changes in place,
{{SegmentCache}} would not interfere with {{SegmentTracker}} and the garbage
collection algorithm.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)