Uploaded image for project: 'Couchbase Server'
  1. Couchbase Server
  2. MB-29765

[eventing] Create common storage abstraction for plasma & forestdb



    • Storage-Sprint-End-Jun-1-2018


      Eventing currently uses Plasma as its underlying storage, but Plasma is not available in CE. For eventing to be present in CE, there needs to be an API compatible replacement implemented using ForestDB. The best option is for storage team to provide a common interface to the supported storages like ForestDB, and Plasma.

      A new abstract wrapper providing a common API for storage satisfying the needs of Eventing will be implemented by the storage team.

      The API requirements from Eventing are 

      • Create/Open/Purge a DB/Store - P0
      • Lookup/Insert/Delete - P0
      • Create and close immutable snapshot - P0
      • Range iteration over snapshot, from beginning to end or using start key/end key - P0
      • Persist api to periodically force fsync - P0
      • Set memory quota - P0
      • Provide a default handler for all compactions - P0
      • Provide default handler for recovery - P0 
      • Provide management of storage files apart from the API. Consumers not interested in managing themselves will rely on default handler. - P0
      • Configure the number of snapshots to be retained - P0
      • Container should be able to pass a logger - P0
      • Allow rolling back to a particular snapshot - P1
      • Additionally, get all files for a given store so that we can copy them over to a different node. - P1
      • Given a filter function, do bulk copy of items from one instance to another matching the filter. - P1


        No reviews matched the request. Check your Options in the drop-down menu of this sections header.



            srinath.duvuru Srinath Duvuru
            sundar Sundar Sridharan (Inactive)
            0 Vote for this issue
            9 Start watching this issue



              Gerrit Reviews

                There are no open Gerrit changes