You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@bookkeeper.apache.org by Ivan Kelly <iv...@apache.org> on 2012/08/10 13:06:09 UTC
Review Request: BOOKKEEPER-208 Separate write quorum from ack quorum
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/6516/
-----------------------------------------------------------
Review request for bookkeeper.
Description
-------
There are use cases for bookkeeper that may require submitting add requests to a write set and returning upon receiving a confirmation from an ack set. The ack set must be a subset of the write set. An important special case is writing to all and returning upon hearing from a majority. Another important use case is avoiding s slow disks by writing to f + s + 1 and returning upon receiving f + 1 responses.
Currently, the write set and the ack set are the same for a ledger. Internal changes to support these cases include changes to LedgerHandle and PendingAddOp. We also need to add a call to the client API to accept different sizes for the write set and the ack set upon ledger creation.
It is also open for the discussion the need to implement a new distribution schedule. So far it looks like we can reuse the round robin implementation we currently have. We would need to implement a new one if, for example, the initial bookie of an add operation must be always the same.
This addresses bug BOOKKEEPER-208.
https://issues.apache.org/jira/browse/BOOKKEEPER-208
Diffs
-----
bookkeeper-benchmark/src/main/java/org/apache/bookkeeper/benchmark/BenchThroughputLatency.java b37de53
bookkeeper-server/src/main/java/org/apache/bookkeeper/client/BookKeeper.java 505f900
bookkeeper-server/src/main/java/org/apache/bookkeeper/client/BookKeeperAdmin.java e4e5809
bookkeeper-server/src/main/java/org/apache/bookkeeper/client/DistributionSchedule.java 833f501
bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerCreateOp.java 26ebad4
bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerHandle.java c5ba6ac
bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerMetadata.java 55dcbd8
bookkeeper-server/src/main/java/org/apache/bookkeeper/client/PendingAddOp.java c9cd24d
bookkeeper-server/src/main/java/org/apache/bookkeeper/client/PendingReadOp.java a654640
bookkeeper-server/src/main/java/org/apache/bookkeeper/client/RoundRobinDistributionSchedule.java 9c989d8
bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/DataFormats.java b69ff1d
bookkeeper-server/src/main/proto/DataFormats.proto c861bde
bookkeeper-server/src/test/java/org/apache/bookkeeper/client/BookieRecoveryTest.java 79f0a0c
bookkeeper-server/src/test/java/org/apache/bookkeeper/client/RoundRobinDistributionScheduleTest.java PRE-CREATION
bookkeeper-server/src/test/java/org/apache/bookkeeper/client/SlowBookieTest.java PRE-CREATION
bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestReadTimeout.java eed9905
bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/GcLedgersTest.java 265dfc7
bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookKeeperClusterTestCase.java ddc920c
Diff: https://reviews.apache.org/r/6516/diff/
Testing
-------
Thanks,
Ivan Kelly
Re: Review Request: BOOKKEEPER-208 Separate write quorum from ack quorum
Posted by Ivan Kelly <iv...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/6516/
-----------------------------------------------------------
(Updated Aug. 10, 2012, 11:06 a.m.)
Review request for bookkeeper.
Description
-------
There are use cases for bookkeeper that may require submitting add requests to a write set and returning upon receiving a confirmation from an ack set. The ack set must be a subset of the write set. An important special case is writing to all and returning upon hearing from a majority. Another important use case is avoiding s slow disks by writing to f + s + 1 and returning upon receiving f + 1 responses.
Currently, the write set and the ack set are the same for a ledger. Internal changes to support these cases include changes to LedgerHandle and PendingAddOp. We also need to add a call to the client API to accept different sizes for the write set and the ack set upon ledger creation.
It is also open for the discussion the need to implement a new distribution schedule. So far it looks like we can reuse the round robin implementation we currently have. We would need to implement a new one if, for example, the initial bookie of an add operation must be always the same.
This addresses bug BOOKKEEPER-208.
https://issues.apache.org/jira/browse/BOOKKEEPER-208
Diffs
-----
bookkeeper-benchmark/src/main/java/org/apache/bookkeeper/benchmark/BenchThroughputLatency.java b37de53
bookkeeper-server/src/main/java/org/apache/bookkeeper/client/BookKeeper.java 505f900
bookkeeper-server/src/main/java/org/apache/bookkeeper/client/BookKeeperAdmin.java e4e5809
bookkeeper-server/src/main/java/org/apache/bookkeeper/client/DistributionSchedule.java 833f501
bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerCreateOp.java 26ebad4
bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerHandle.java c5ba6ac
bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerMetadata.java 55dcbd8
bookkeeper-server/src/main/java/org/apache/bookkeeper/client/PendingAddOp.java c9cd24d
bookkeeper-server/src/main/java/org/apache/bookkeeper/client/PendingReadOp.java a654640
bookkeeper-server/src/main/java/org/apache/bookkeeper/client/RoundRobinDistributionSchedule.java 9c989d8
bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/DataFormats.java b69ff1d
bookkeeper-server/src/main/proto/DataFormats.proto c861bde
bookkeeper-server/src/test/java/org/apache/bookkeeper/client/BookieRecoveryTest.java 79f0a0c
bookkeeper-server/src/test/java/org/apache/bookkeeper/client/RoundRobinDistributionScheduleTest.java PRE-CREATION
bookkeeper-server/src/test/java/org/apache/bookkeeper/client/SlowBookieTest.java PRE-CREATION
bookkeeper-server/src/test/java/org/apache/bookkeeper/client/TestReadTimeout.java eed9905
bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/GcLedgersTest.java 265dfc7
bookkeeper-server/src/test/java/org/apache/bookkeeper/test/BookKeeperClusterTestCase.java ddc920c
Diff: https://reviews.apache.org/r/6516/diff/
Testing
-------
Thanks,
Ivan Kelly