You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@bookkeeper.apache.org by Sijie Guo <gu...@gmail.com> on 2011/11/07 09:44:36 UTC
Re: Review Request: BOOKKEEPER-101 Add Fencing to Bookkeeper
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/2594/#review3073
-----------------------------------------------------------
bookkeeper-server/src/main/java/org/apache/bookkeeper/client/BKException.java
<https://reviews.apache.org/r/2594/#comment6861>
since in bookie server, LedgerFencedException is -101. It would be better to use same number.
bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/BookieServer.java
<https://reviews.apache.org/r/2594/#comment6862>
now we have 3 flag in enum set. if we want to add another flag in future, it would be 0x11. then (0x11 & BookieProtocol.FLAG_DO_FENCING) would also be greater than 0.
so I suggest that we defined FLAG in constant values instead of a EnumSet. then explicitly check values, e.g. flags & BookieProtocol.FLAG_DO_FENCING == BookieProtocol.FLAG_DO_FENCING.
- Sijie
On 2011-11-04 17:40:53, Ivan Kelly wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/2594/
> -----------------------------------------------------------
>
> (Updated 2011-11-04 17:40:53)
>
>
> Review request for bookkeeper.
>
>
> Summary
> -------
>
> BookKeeper is designed for use as a Write ahead log. In systems with a primary/backup architecture, the primary will write state updates to the WAL. If the primary dies the backup comes online, reads the WAL to get the latest state and starts serving requests. However, if the primary was only partitioned from the network, or stuck in a long GC, a split brain occurs. Both primary and backup can service client requests.
>
> Fencing(http://en.wikipedia.org/wiki/Fencing_%28computing%29) ensures that this cannot happen. With fencing, the backup can close the WAL of the primary, and cause any subsequent attempt by the primary to write to the WAL to give an error.
>
>
> This addresses bug BOOKKEEPER-101.
> https://issues.apache.org/jira/browse/BOOKKEEPER-101
>
>
> Diffs
> -----
>
> bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/Bookie.java d651894
> bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/BookieException.java 292617e
> bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/LedgerDescriptor.java 024cac3
> bookkeeper-server/src/main/java/org/apache/bookkeeper/client/BKException.java d7c8f67
> bookkeeper-server/src/main/java/org/apache/bookkeeper/client/BookKeeper.java a1fbab7
> bookkeeper-server/src/main/java/org/apache/bookkeeper/client/BookKeeperAdmin.java b3eb5b9
> bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerCreateOp.java 6f72e47
> bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerHandle.java 8c2a54f
> bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerMetadata.java 328c7ca
> bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerOpenOp.java a68856c
> bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerRecoveryOp.java 7465c52
> bookkeeper-server/src/main/java/org/apache/bookkeeper/client/PendingAddOp.java eddd760
> bookkeeper-server/src/main/java/org/apache/bookkeeper/client/PendingReadOp.java 385b16c
> bookkeeper-server/src/main/java/org/apache/bookkeeper/client/ReadLastConfirmedOp.java c2d4cee
> bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/BookieClient.java d70ae27
> bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/BookieProtocol.java 873dafe
> bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/BookieServer.java f1b3ad9
> bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/PerChannelBookieClient.java 2cd4de8
> bookkeeper-server/src/test/java/org/apache/bookkeeper/client/LedgerCacheTest.java 07639aa
> bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestFencing.java PRE-CREATION
> bookkeeper-server/src/test/java/org/apache/bookkeeper/proto/TestProtoVersions.java f6cd8c9
> bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BaseTestCase.java 6bac569
> bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookieClientTest.java 97dc2ab
> bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookieRecoveryTest.java ac54d9a
> bookkeeper-server/src/test/java/org/apache/bookkeeper/test/ConcurrentLedgerTest.java ebb17d2
> bookkeeper-server/src/test/java/org/apache/bookkeeper/test/LoopbackClient.java 85822bf
> hedwig-server/src/main/java/org/apache/hedwig/server/benchmark/BookieBenchmark.java 18319d7
>
> Diff: https://reviews.apache.org/r/2594/diff
>
>
> Testing
> -------
>
>
> Thanks,
>
> Ivan
>
>