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

Aniruddha commented on BOOKKEEPER-432:
--------------------------------------

[~ikelly] I had a similar approach in mind to what you have suggested with some 
auto-tuning. I can do this over the weekend while [~yx3...@gmail.com] works on 
a more formal skip list based design. Is that okay? 
                
> Improve performance of entry log range read per ledger entries 
> ---------------------------------------------------------------
>
>                 Key: BOOKKEEPER-432
>                 URL: https://issues.apache.org/jira/browse/BOOKKEEPER-432
>             Project: Bookkeeper
>          Issue Type: Improvement
>          Components: bookkeeper-server
>    Affects Versions: 4.2.0
>         Environment: Linux
>            Reporter: Yixue (Andrew) Zhu
>              Labels: patch
>
> We observed random I/O reads when some subscribers fall behind (on some 
> topics), as delivery needs to scan the entry logs (thru ledger index), which 
> are interleaved with ledger entries across all ledgers being served.
> Essentially, the ledger index is a non-clustered index. It is not effective 
> when a large number of ledger entries need to be served, which tend to be 
> scattered around due to interleaving.
> Some possible improvements:
> 1. Change the ledger entries buffer to use a SkipList (or other suitable), 
> sorted on (ledger, entry sequence). When the buffer is flushed, the entry log 
> is written out in the already-sorted order. 
> The "active" ledger index can point to the entries buffer (SkipList), and 
> fixed up with entry-log position once latter is persisted.
> Or, the ledger index can be just rebuilt on demand. The entry log file tail 
> can have index attached (light-weight b-tree, similar with big-table). We 
> need to track per ledger which log files contribute entries to it, so that 
> in-memory index can be rebuilt from the tails of corresponding log files.
> 2. Use affinity concept to make ensembles of ledgers (belonging to same 
> topic) as identical as possible. This will help above 1. be more effective.
>  

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to