Details
-
Improvement
-
Resolution: Won't Fix
-
Major
-
5.5.0
-
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