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