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

[eventing] Create common storage abstraction for plasma & forestdb

    XMLWordPrintable

Details

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

    Description

      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

      Attachments

        Activity

          People

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

            Dates

              Created:
              Updated:
              Resolved:

              PagerDuty