[
https://issues.apache.org/jira/browse/BOOKKEEPER-827?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14248337#comment-14248337
]
Ivan Kelly commented on BOOKKEEPER-827:
---------------------------------------
The change conflates two ideas, the rate at which we copy entries and number of
offsets we keep in memory at any time.
The first part, it actually does make more sense to do it by bytes per second.
The second part, it doesn't make any sense to do by bytes per second, as the
offset for each entry is exactly the same size (8 bytes i think + pointer
overhead).
So, I would suggest, keep the first part and not the second. Make the
compaction always compact limiting by bytes. @Deprecate the other
'compactionRate', and for now, have a standard conversion (e.g. always assume
entries are 1k in size if compactionRate is being used).
> change throttle in GarbageCollector to use either "by entry" or "by byte"
> -------------------------------------------------------------------------
>
> Key: BOOKKEEPER-827
> URL: https://issues.apache.org/jira/browse/BOOKKEEPER-827
> Project: Bookkeeper
> Issue Type: Improvement
> Components: bookkeeper-server
> Affects Versions: 4.3.0
> Reporter: zhaijia
> Assignee: zhaijia
> Fix For: 4.4.0, 4.3.1
>
> Attachments: BOOKKEEPER-827-v2.patch
>
>
> Current bookie compaction in GarbageCollector has two settings:
> 'compactionMaxOutstandingRequests' and 'compactionRate'. They are throttling
> and limiting the compaction by entries.
> But from a bandwidth perspective, it would be good that we could throttle and
> limit compaction by bytes, which would really reflect the bandwidth of disk.
> So in this enhancement, we added another "by bytes" option when doing
> compaction in GarbageCollector:
> "boolean isThrottleByBytes": true when use by bytes, false when use by
> entries;
> "int maxOutstandingRequests": by entries, number of entries before flush;
> "int compactionRateByEntries": by entries, number of concurrent entries;
> "int maxOutstandingRequestsBytes: by bytes, number of bytes that entries have
> occupied before flush.
> "int compactionRateByBytes": by bytes, number of bytes of entries before
> flush.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)