GitHub user sijie opened a pull request: https://github.com/apache/bookkeeper/pull/182
BOOKKEEPER-1092: Ledger Recovery - Add Test Case for Parallel Ledger Recovery This change is based on #180 (ebf7020 is the change for review) - Add test case for parallel ledger recovery - More stats for ledger recovery You can merge this pull request into a Git repository by running: $ git pull https://github.com/sijie/bookkeeper recovery_improvements_part5 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/bookkeeper/pull/182.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #182 ---- commit 3db0b84570dec166855c70105a5cbf6f2ec14ea2 Author: Sijie Guo <sij...@twitter.com> Date: 2014-01-21T00:42:28Z bookkeeper recovery improvement (part-1): refactor PendingReadOp this change is the first part of improving bookkeeper recovery. it is basically a refactor change, which: - abstract an interface for LedgerEntryRequest in PendingReadOp - rename current implementation to SequenceReadRequest, which read the entry in the sequence of quorum. RB_ID=266137 commit 80ffc6ca86b5e8a63dc3b9baf846ad139d7beea1 Author: Sijie Guo <si...@apache.org> Date: 2017-06-01T19:11:40Z Address conflicts commit f0fb89cbdfed6c6b0d519a25ea2ea67dcd72834e Author: Sijie Guo <sij...@twitter.com> Date: 2014-01-21T00:49:52Z bookkeeper recovery improvement (part-2): add a parallel reading request in PendingReadOp - add a parallel reading request in PendingReadOp - allow PendingReadOp to configure whether to do parallel reading or not - add flag in ClientConfiguration to allow configuring whether to do parallel reading in LedgerRecoveryOp or not. RB_ID=266139 commit db3e98ba9250b622db80cac8dd6dbd2761a32381 Author: Sijie Guo <si...@apache.org> Date: 2017-06-01T20:00:01Z Address conflicts commit 8b8a3c8db86a11a30efb14d04b33bfcd461a6f05 Author: Sijie Guo <sij...@twitter.com> Date: 2014-01-21T00:55:30Z bookkeeper recovery improvement (part-3): add a ReadEntryListener to callback on individual request. - add read entry listener which allow doing batch read, but callback on individual entries in sequence. so in recovery op, we could issue batch reads, then on each individual callback do add entry and stop when received NoSuchEntry. RB_ID=266143 commit 455afdad38103db978638a9e3f8774623efbb82a Author: Sijie Guo <sij...@twitter.com> Date: 2014-01-21T01:00:30Z bookkeeper recovery improvement (part-4): allow batch reading in ledger recovery - enable batch read in ledger recovery, so we could parallel reading to improve recovery time. RB_ID=266145 commit d9b9d98518d8ee0b1951ad2eee8ce28820a4c652 Author: Sijie Guo <si...@apache.org> Date: 2017-06-01T22:04:44Z Address conflicts in merge commit 8fdab64666977d7b9fc302024ce690b53c981f8b Author: Sijie Guo <si...@apache.org> Date: 2017-06-02T20:36:03Z bookkeeper: LAC piggyback at read response - bookie server changes * cache maximum lac in file info * provide getLastAddConfirmed & setLastAddConfirmed in ledger storage * addEntry will set its lac thru setLastAddConfirmed * readEntry will read latest lac and piggyback - client change * check whether the response has lac piggybacked, if there is lac update lac in its corresponding ledger handle. commit ebf702070df21b8106c39fde13d861c1a6c5e8e0 Author: Sijie Guo <sij...@twitter.com> Date: 2014-01-21T01:11:52Z bookkeeper recovery improvement (part-5): parallel ledger metadata update with bookie entries recovery proceedure currently, the ledger recovery procedure is - read ledger metadata - set ledger metadata to IN_RECOVERY state - recover entries - close ledger metadata. as 'set ledger metadata to IN_RECOVERY' could be executed in parallel with 'recover entries'. this change is to explore this kind of parallelism. RB_ID=266147 ---- --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---