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

Enhance client API

    XMLWordPrintableJSON

Details

    Description

      Today's BK client API generates entryId and LedgerHandle for the caller.
      While this is very convenient and makes the life of caller very simple and easy,
      this model may not be very suitable where application would like to have
      better control.

      In order to facilitate applications/users of BK aspiring to have more control
      following enhancements are proposed for BK client API:

      • API enhancement to accept entryID:
        Enhance BK client API to pass entryId as an input and the caller must guarantee the following:
      • entryIds are never duplicated
      • entryIds are sequential starting from 0.
      • entryIds have no holes.
      • API enhancement to accept LedgerHandle
        Applications are allowed to pass-in ledgerId provided:
      • ledgerId is unique within the cluster.
      • Or even better, if using GUID (128 bit) virtually guarantees universal
        uniqueness.
      • Need to bypass current ledgerId generation logic.
      • Allow multiple entities (threads/processes) write to the ledger as long as
        there is only one writer at the given instance of time.
      • Currently ledgerHandle interface accepts byteArray as input, but sockets
        use byteBuffer. We will add additional functions to the new classes to
        accept both byteBuffers and byteArrays.
      • Sijie suggested to create a new classes that extents existing classes to accept LedgerId and entryId as inputs.This avoids any confusion with existing interfaces, and makes it explicit.

      Attachments

        There are no Sub-Tasks for this issue.

        Activity

          People

            jujjuri JV Jujjuri
            jujjuri JV Jujjuri
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:

              Time Tracking

                Estimated:
                Original Estimate - 672h
                672h
                Remaining:
                Remaining Estimate - 672h
                672h
                Logged:
                Time Spent - Not Specified
                Not Specified