[
https://issues.apache.org/jira/browse/BOOKKEEPER-836?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14321322#comment-14321322
]
Flavio Junqueira commented on BOOKKEEPER-836:
---------------------------------------------
I'm not sure I agree with the change this patch is proposing. If the disk is
getting full, then GC is precisely what you want to do to reclaim disk space.
However, I understand that to run a GC round, we need additional space. Perhaps
what we need to do instead is lower the threshold to consider the disk at risk
of getting full. We could also progressively release old logs instead of
waiting until the end of the process.
A minor point is that I'm not sure we need to make the suspend and resume
methods synchronized. I understand you're doing because of concurrent thread
accesses to the boolean variables, but the fact that you made them atomic
already linearizes the operations to the variables.
> disable compaction when disk becomes full, otherwise compaction will fill up
> disk quickly
> -----------------------------------------------------------------------------------------
>
> Key: BOOKKEEPER-836
> URL: https://issues.apache.org/jira/browse/BOOKKEEPER-836
> Project: Bookkeeper
> Issue Type: Improvement
> Components: bookkeeper-server
> Affects Versions: 4.2.3
> Reporter: Jia Zhai
> Assignee: Jia Zhai
> Fix For: 4.4.0, 4.3.2
>
> Attachments: BOOKKEEPER-836.patch
>
>
> In doCompactEntryLogs, Entries are added to new logs, while all old logs were
> not released until the end of handling. So during the process, a lot of
> space will be used. Need to disable compaction when disk becomes full,
> otherwise compaction will fill up disk quickly.
> I would like to change old "forced garbage collection" logic, and suspend
> major compaction when it reaches warn threshold, suspend minor compaction
> when it reaches critical threshold.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)