Uploaded image for project: 'Bookkeeper'
  1. Bookkeeper
  2. BOOKKEEPER-208

Separate write quorum from ack quorum

    XMLWordPrintableJSON

Details

    • New Feature
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 4.2.0
    • bookkeeper-client
    • None

    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.

      Attachments

        1. BOOKKEEPER-208.diff
          59 kB
          Ivan Kelly
        2. BOOKKEEPER-208.diff
          56 kB
          Ivan Kelly
        3. BOOKKEEPER-208.diff
          51 kB
          Ivan Kelly
        4. BOOKKEEPER-208.diff
          46 kB
          Ivan Kelly
        5. BOOKKEEPER-208.diff
          37 kB
          Ivan Kelly
        6. BOOKKEEPER-208.diff
          13 kB
          Ivan Kelly

        Issue Links

          Activity

            People

              ikelly Ivan Kelly
              fpj Flavio Paiva Junqueira
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: