[
https://issues.apache.org/jira/browse/OAK-4966?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15632678#comment-15632678
]
Michael Dürig commented on OAK-4966:
------------------------------------
* Regarding {{MemoryListener}}: shouldn't it better react to
{{MemoryNotificationInfo.MEMORY_COLLECTION_THRESHOLD_EXCEEDED}} instead of
{{MemoryNotificationInfo.MEMORY_THRESHOLD_EXCEEDED}}?. IIUC the latter will
receive notifications even though gc might be able to release most of the
memory. This might lead to false positives.
* Re. {{GCMemoryBarrier.checkMemory()}}: is this needed in this form? Isn't it
sufficient to just look at
{{MemoryPoolMXBean.getCollectionUsageThresholdCount()}}? It might even be
unsafe to call {{checkMemory()}} from the listener as the listener is expected
to be fast but {{MemoryPoolMXBean.getUsage()}} might not be.
> Re-introduce a blocker for compaction based on available heap
> -------------------------------------------------------------
>
> Key: OAK-4966
> URL: https://issues.apache.org/jira/browse/OAK-4966
> Project: Jackrabbit Oak
> Issue Type: Improvement
> Components: segment-tar
> Reporter: Alex Parvulescu
> Assignee: Alex Parvulescu
> Fix For: 1.6, 1.5.13
>
> Attachments: OAK-4966-jmx-notification.patch, OAK-4966.patch
>
>
> As seen in a local test, running compaction on a tight heap can lead to
> OOMEs. There used to be a best effort barrier against this situation 'not
> enough heap for compaction', but we removed it with the compaction maps.
> I think it makes sense to add it again based on the max size of some of the
> caches: segment cache {{256MB}} by default [0] and some writer caches which
> can go up to {{2GB}} all combined [1] and probably others I missed.
> [0]
> https://github.com/apache/jackrabbit-oak/blob/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentCache.java#L48
> [1]
> https://github.com/apache/jackrabbit-oak/blob/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/WriterCacheManager.java#L50
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)