> On Nov. 12, 2014, 4:33 p.m., fpj wrote:
> > I quite like the changes here, they make sense to me. I just have one 
> > clarification question and a small suggestion below.

I'm happy with the changes. Any other comment here or should I get this in?


> On Nov. 12, 2014, 4:33 p.m., fpj wrote:
> > bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerHandle.java,
> >  line 888
> > <https://reviews.apache.org/r/27529/diff/1/?file=747433#file747433line888>
> >
> >     I'm a bit confused by the synchronization here. The implementation of 
> > handleBookieFailure with a different signature is synchronized but this one 
> > isn't. It sounds like handleBookieFailure(BookieFailureEvent failure) is 
> > invoked outside handleBookieFailure(final BookieSocketAddress addr, final 
> > int bookieIndex) and it isn't clear to me if the synchroization as proposed 
> > is right. Have you actually checked?
> 
> Ivan Kelly wrote:
>     #handleBookieFailure(BookieFailureEvent) doesn't actually mutate any 
> shared state, so it doesn't need to be synchronized. 
> #handleBookieFailure(BookieSocketAddress, int) modifies the failures set, 
> which is the failures that are currently being handled. I could use a 
> concurrentset here, but this is there's no blocking operations in 
> handleBookieFailure in any case, and bookieFailureHandled calls 
> unsetSuccessAndSendWriteRequest, which needs to be synchronized, so I'd 
> prefer to leave it as is. I should rename 
> #handleBookieFailure(BookieFailureEvent) though to avoid confusion.

Renaming sounds like a good idea indeed to avoid confusion.


- fpj


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/27529/#review60997
-----------------------------------------------------------


On Nov. 13, 2014, 1:56 p.m., Ivan Kelly wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/27529/
> -----------------------------------------------------------
> 
> (Updated Nov. 13, 2014, 1:56 p.m.)
> 
> 
> Review request for bookkeeper.
> 
> 
> Bugs: BOOKKEEPER-795
>     https://issues.apache.org/jira/browse/BOOKKEEPER-795
> 
> 
> Repository: bookkeeper-git
> 
> 
> Description
> -------
> 
>     Made ledger metadata immutable
>     
>     Ensembles are now ImmutableMap<Long, ImmutableList<BookieSocketAddress>>.
>     The LedgerManager manager interface has changed to avoid implicitly
>     updating the version of a LedgerMetadata object. Recovery, Closing and
>     handling bookie failures have now changed, as there are no longer merge
>     operations. If a write to zookeeper fails, then
>     recovery/closing/failureHandling are retried with the new metadata,
>     provided that assumptions are not broken.
>     
>     The interesting changes are in LedgerHandle and LedgerMetadata.
>     
>     There are a lot of changes from ArrayList -> ImmutableList,List
>     Also a lot of changes from currentEnsemble -> getCurrentEnsemble.
>     
>     One test had to change. With the old code, if someone fenced a ledger,
>     closing would fail. This isn't always the case now. If there's lac of
>     the writing ledger matches the lastEntryId of the new metadata, then
>     close can succeed. ConditionalSetTest has changed to reflect this.
> 
> 
> Diffs
> -----
> 
>   
> bookkeeper-server/src/main/java/org/apache/bookkeeper/client/BookKeeperAdmin.java
>  18a801c 
>   
> bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerChecker.java
>  3f2580f 
>   
> bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerCreateOp.java
>  fe223af 
>   
> bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerFragment.java
>  6aadb8a 
>   
> bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerFragmentReplicator.java
>  4501524 
>   
> bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerHandle.java
>  7204d6c 
>   
> bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerMetadata.java
>  a20f34a 
>   
> bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerRecoveryOp.java
>  7ed7aa2 
>   
> bookkeeper-server/src/main/java/org/apache/bookkeeper/client/PendingAddOp.java
>  1b92d09 
>   
> bookkeeper-server/src/main/java/org/apache/bookkeeper/client/PendingReadOp.java
>  e548f3d 
>   
> bookkeeper-server/src/main/java/org/apache/bookkeeper/client/ReadLastConfirmedOp.java
>  af21f44 
>   
> bookkeeper-server/src/main/java/org/apache/bookkeeper/client/ReadOnlyLedgerHandle.java
>  8de4092 
>   
> bookkeeper-server/src/main/java/org/apache/bookkeeper/client/TryReadLastConfirmedOp.java
>  01b81c9 
>   
> bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/AbstractZkLedgerManager.java
>  0fc8afe 
>   
> bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/CleanupLedgerManager.java
>  a873112 
>   
> bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/FlatLedgerManager.java
>  2bc4258 
>   
> bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/HierarchicalLedgerManager.java
>  7f2df73 
>   
> bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/LedgerManager.java 
> 7229028 
>   
> bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/MSLedgerManagerFactory.java
>  2510b89 
>   
> bookkeeper-server/src/main/java/org/apache/bookkeeper/replication/BookieLedgerIndexer.java
>  1b4efaf 
>   
> bookkeeper-server/src/main/java/org/apache/bookkeeper/replication/ReplicationWorker.java
>  02154e5 
>   
> bookkeeper-server/src/test/java/org/apache/bookkeeper/bookie/CompactionTest.java
>  ef4cea8 
>   
> bookkeeper-server/src/test/java/org/apache/bookkeeper/client/BookieRecoveryTest.java
>  f18e159 
>   
> bookkeeper-server/src/test/java/org/apache/bookkeeper/client/BookieWriteLedgerTest.java
>  7b77c48 
>   
> bookkeeper-server/src/test/java/org/apache/bookkeeper/client/ClientUtil.java 
> dc43b2c 
>   
> bookkeeper-server/src/test/java/org/apache/bookkeeper/client/LedgerCloseTest.java
>  eef56b0 
>   
> bookkeeper-server/src/test/java/org/apache/bookkeeper/client/LedgerHandleAdapter.java
>  9af527a 
>   
> bookkeeper-server/src/test/java/org/apache/bookkeeper/client/LedgerRecoveryTest.java
>  f54cde1 
>   
> bookkeeper-server/src/test/java/org/apache/bookkeeper/client/SlowBookieTest.java
>  521d1e3 
>   
> bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestLedgerChecker.java
>  eb61c21 
>   
> bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestLedgerFragmentReplication.java
>  e4f744f 
>   
> bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestSpeculativeRead.java
>  2a6c71d 
>   
> bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestTryReadLastConfirmed.java
>  ac0afb6 
>   
> bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestWatchEnsembleChange.java
>  eb833a3 
>   
> bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/GcLedgersTest.java 
> 19aab44 
>   
> bookkeeper-server/src/test/java/org/apache/bookkeeper/replication/AuditorPeriodicBookieCheckTest.java
>  91aae77 
>   
> bookkeeper-server/src/test/java/org/apache/bookkeeper/replication/BookieAutoRecoveryTest.java
>  72fd11c 
>   
> bookkeeper-server/src/test/java/org/apache/bookkeeper/replication/TestAutoRecoveryAlongWithBookieServers.java
>  e1ccf68 
>   
> bookkeeper-server/src/test/java/org/apache/bookkeeper/replication/TestReplicationWorker.java
>  d47e4b1 
>   
> bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookKeeperClusterTestCase.java
>  9662777 
>   
> bookkeeper-server/src/test/java/org/apache/bookkeeper/test/ConditionalSetTest.java
>  a06accd 
> 
> Diff: https://reviews.apache.org/r/27529/diff/
> 
> 
> Testing
> -------
> 
> All tests pass
> 
> 
> Thanks,
> 
> Ivan Kelly
> 
>

Reply via email to