-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/27529/
-----------------------------------------------------------
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