[ https://issues.apache.org/jira/browse/BOOKKEEPER-432?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13888882#comment-13888882 ]
Hadoop QA commented on BOOKKEEPER-432: -------------------------------------- Testing JIRA BOOKKEEPER-432 Patch [BOOKKEEPER-432.diff|https://issues.apache.org/jira/secure/attachment/12626518/BOOKKEEPER-432.diff] downloaded at Sun Feb 2 09:07:56 UTC 2014 ---------------------------- {color:green}+1 PATCH_APPLIES{color} {color:green}+1 CLEAN{color} {color:green}+1 RAW_PATCH_ANALYSIS{color} . {color:green}+1{color} the patch does not introduce any @author tags . {color:green}+1{color} the patch does not introduce any tabs . {color:green}+1{color} the patch does not introduce any trailing spaces . {color:green}+1{color} the patch does not introduce any line longer than 120 . {color:green}+1{color} the patch does adds/modifies 5 testcase(s) {color:red}-1 RAT{color} . {color:red}-1{color} the patch seems to introduce 1 new RAT warning(s) {color:green}+1 JAVADOC{color} . {color:green}+1{color} the patch does not seem to introduce new Javadoc warnings {color:green}+1 COMPILE{color} . {color:green}+1{color} HEAD compiles . {color:green}+1{color} patch compiles . {color:green}+1{color} the patch does not seem to introduce new javac warnings {color:green}+1 FINDBUGS{color} . {color:green}+1{color} the patch does not seem to introduce new Findbugs warnings {color:green}+1 TESTS{color} . Tests run: 893 {color:green}+1 DISTRO{color} . {color:green}+1{color} distro tarball builds with the patch ---------------------------- {color:red}*-1 Overall result, please check the reported -1(s)*{color} The full output of the test-patch run is available at . https://builds.apache.org/job/bookkeeper-trunk-precommit-build/575/ > 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 > Assignee: Yixue (Andrew) Zhu > Labels: patch > Fix For: 4.3.0 > > Attachments: 0001-BOOKKEEPER-432-First-pass.patch, > BOOKKEEPER-432.diff, BookieLedgerStorageProposal.pdf, > PortSkipListLedgerStore.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 was sent by Atlassian JIRA (v6.1.5#6160)