[
https://issues.apache.org/jira/browse/BOOKKEEPER-337?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13430870#comment-13430870
]
Rakesh R commented on BOOKKEEPER-337:
-------------------------------------
@Ivan @Sijie
Thanks a lot for your thoughts. I've modified the logic little bit, please
review.
Latest patch contains:
# synchronized block while replacing the failed bookie in the ensemble. This is
done to avoid concurrent ensemble modification (same as mentioned in the above
discussion threads)
# When there is a zversion conflict,
- first would check the metadata state, return false and throws exception if
the state mismatches
- update znode version
- then if my changes doesn't exists in zk, writeLedgerConfig(), otw again back
to handleFailure
- return success and continue with write req, if in-memory structure is insync
with zk.
@Sijie
I'm thinking the resolveconflicts() would not required to have the
currentStartEntryId checks. Instead it can be generic by only checking the
states. Any thoughts?
> Add entry fails with MetadataVersionException when last ensemble has morethan
> one bookie failures
> -------------------------------------------------------------------------------------------------
>
> Key: BOOKKEEPER-337
> URL: https://issues.apache.org/jira/browse/BOOKKEEPER-337
> Project: Bookkeeper
> Issue Type: Bug
> Reporter: Brahma Reddy Battula
> Assignee: Rakesh R
> Attachments: BOOKKEEPER-337-testtoreproduce.patch,
> BOOKKEEPER-337-try.patch, BOOKKEEPER-337-try2.patch, BOOKKEEPER-337.1.patch,
> BOOKKEEPER-337.diff
>
>
> Scenario:
> ========
> Start Five BK's
> Write ledger's with ensemble three and quroum size=2
> while write inprogress down two bookies(Bookies should be in 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