[
https://issues.apache.org/jira/browse/BOOKKEEPER-106?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13150527#comment-13150527
]
[email protected] commented on BOOKKEEPER-106:
----------------------------------------------------------
bq. On 2011-11-15 13:53:03, fpj wrote:
bq. > Ivan, It is not very easy to review this patch because there is
reformatting mixed with the fix itself. My understanding is that the fix itself
is essentially the implementation of getNewBookie and the changes to call it.
Could you please describe the changes in slightly more detail so that it helps
the review?
The refactoring in BookKeeperAdmin is part of the fix. The sequence of
callbacks and the exact detail of what they do had to be restructured. I
updated the description of the review to explain the change. Its quite complex.
For BookieRecoveryTest.java, everything below line 430 is new. I had to move
the test from org.apache.bookkeeper.test to org.apache.bookkeeper.client to
allow it to access the metadata from the ledger handle.
bq. On 2011-11-15 13:53:03, fpj wrote:
bq. >
bookkeeper-server/src/main/java/org/apache/bookkeeper/client/BookKeeperAdmin.java,
line 600
bq. > <https://reviews.apache.org/r/2806/diff/1/?file=57480#file57480line600>
bq. >
bq. > Is the formatting of this block correct? It doesn't look like on
review board but I need to check on a text editor.
What looks wrong with it? availableBookies is lined up with the start of the
argument list which is in line with Sun conventions
(http://www.oracle.com/technetwork/java/codeconventions-136091.html#248).
There's a few superfluous spaces (rb marks red), which i need to remove.
bq. On 2011-11-15 13:53:03, fpj wrote:
bq. >
bookkeeper-server/src/test/java/org/apache/bookkeeper/client/BookieRecoveryTest.java,
line 605
bq. > <https://reviews.apache.org/r/2806/diff/1/?file=57482#file57482line605>
bq. >
bq. > Is this todo to the lh.close that is commented out?
This is something I need to open another JIRA for. Basically, if you recover a
bookie, all ledgers recovered will have their zookeeper metadata changed. If
another process is currently writing to the ledger, when they try to close the
handle, they will get a KeeperException.BadVersion because the version of the
ledger znode has changed. It's not a correctness issue, but more of something
that could be annoying for users.
- Ivan
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/2806/#review3253
-----------------------------------------------------------
On 2011-11-11 16:05:38, Ivan Kelly wrote:
bq.
bq. -----------------------------------------------------------
bq. This is an automatically generated e-mail. To reply, visit:
bq. https://reviews.apache.org/r/2806/
bq. -----------------------------------------------------------
bq.
bq. (Updated 2011-11-11 16:05:38)
bq.
bq.
bq. Review request for bookkeeper.
bq.
bq.
bq. Summary
bq. -------
bq.
bq. As the summary says, if you don't specify a destBookie when doing
recoveryBookieData, it will select at random from the available bookie list. It
doesn't take care to select a bookie which is not is the ledgers ensemble.
bq.
bq. Attached patch fixes this problem and also cleans up BookKeeperAdmin a
little. There were a lot of nested callbacks nested in more callbacks etc. I've
tries to unnest a little.
bq.
bq. Ledger metadata is now updated on each fragment. It used to be updated
when the whole ledger was recovered, but only specified a single possible
ledger. This was incorrect as it could lead to underreplication. There can be
contention in the writes to the ledger data, but just retry as the previously
successful write should have updated the stat, and they will be writing from
the same ledger handle.
bq.
bq. I've also added a couple of tests and some test framework stuff to verify
that entries are all replicated.
bq.
bq.
bq. This addresses bug BOOKKEEPER-106.
bq. https://issues.apache.org/jira/browse/BOOKKEEPER-106
bq.
bq.
bq. Diffs
bq. -----
bq.
bq.
bookkeeper-server/src/main/java/org/apache/bookkeeper/client/BookKeeperAdmin.java
b3eb5b9
bq.
bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/BookieServer.java
f1b3ad9
bq.
bookkeeper-server/src/test/java/org/apache/bookkeeper/client/BookieRecoveryTest.java
PRE-CREATION
bq.
bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BaseTestCase.java
6bac569
bq.
bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookieRecoveryTest.java
ac54d9a
bq.
bq. Diff: https://reviews.apache.org/r/2806/diff
bq.
bq.
bq. Testing
bq. -------
bq.
bq.
bq. Thanks,
bq.
bq. Ivan
bq.
bq.
> recoveryBookieData can select a recovery bookie which is already in the
> ledgers ensemble
> ----------------------------------------------------------------------------------------
>
> Key: BOOKKEEPER-106
> URL: https://issues.apache.org/jira/browse/BOOKKEEPER-106
> Project: Bookkeeper
> Issue Type: Bug
> Reporter: Ivan Kelly
> Assignee: Ivan Kelly
> Priority: Blocker
> Fix For: 4.0.0
>
> Attachments: BOOKKEEPER-106.diff
>
>
> As the summary says, if you don't specify a destBookie when doing
> recoveryBookieData, it will select at random from the available bookie list.
> It doesn't take care to select a bookie which is not is the ledgers ensemble.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira