----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/2594/#review3245 -----------------------------------------------------------
bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/Bookie.java <https://reviews.apache.org/r/2594/#comment7274> Just a minor nit: maybe rename addEntryToLedger to addEntryInternal() just to distinguish public methods from private methods. No big deal anyways! bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/Bookie.java <https://reviews.apache.org/r/2594/#comment7275> This is called when a client is trying to do recovery. In this case, should this call first assert that the fenced flag is already set in the handle? something like: if (!handle.isFeenced()) { throw Exception() } bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/Bookie.java <https://reviews.apache.org/r/2594/#comment7276> I like this simple api to fence. Maybe the javadoc can specify that even if the handle is already fenced, invoking this api is ok and keeps the fencing flag still set. bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/Bookie.java <https://reviews.apache.org/r/2594/#comment7273> A handle, once fenced, can never be set to an 'unfenced' state, am I correct? - Dhruba On 2011-11-10 11:14:47, Ivan Kelly wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/2594/ > ----------------------------------------------------------- > > (Updated 2011-11-10 11:14:47) > > > 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/client/ReadOnlyLedgerHandle.java > PRE-CREATION > > 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/NIOServerFactory.java > e0743bb > > bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/PerChannelBookieClient.java > 2cd4de8 > > 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/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 > >
