[ 
https://issues.apache.org/jira/browse/BOOKKEEPER-827?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14247927#comment-14247927
 ] 

Sijie Guo commented on BOOKKEEPER-827:
--------------------------------------

several comments:

- make ThrottledOffsets a 'private static class'.
- acquireLimit => acquire or 'acquirePermits'
- numberItems => size
- compactionRate: you'd better not remove any parameter directly, otherwise, it 
would cause any backward compatibility concern. a good practice is to 
deprecated the method in current release, and remove it in future.
{code}
// deprecated the method
@Deprcated
public getCompactionRate()

// add the two new methods and make getCompactionRateByEntries use the rate 
parameters if people don't use the new two parameters. 
public getCompactionRateByEntries() {
     return getInt(..., getRate());
}
{code}

- compactionMaxOutstandingRequestsBytes: as Ivan pointed out in the email 
thread, the memory usage is actually for the Offset object itself, not the 
entries. so in this case, you don't need to add 
'compactionMaxOutstandingRequestsBytes' parameter, 
'compactionMaxOutstandingRequests' is good enough though. 

> 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)

Reply via email to