-
Notifications
You must be signed in to change notification settings - Fork 4
Open
Labels
Description
Objective
Implement a submodule in the kvstore directory for a RocksDB
- Look into IOTA's
rocksdband see whether this can be used. The repo - Look into
Pebbleby CockroachDB a Go implementation based on RocksDB they use at CockroachDB - Look into
grocksdbwhich is a wrapper in Go for RocksDB being actively maintained - Look into
gorocksdbdeveloped by cosmos as their Go wrapper for RocksDB
Origin Document
RocksDB is known for its speed and effiiency, having it not only as a nodestore backing the SMT would improve performance in prod but also a wrapper around RocksDB that exposes extra methods would be highly sought after.
Goals
- Find an appropriate library to base the submodule on
- Create a submodule and expose an interface for easy use
- Ensure it conforms to
MapStoreand can be used with theSMT - Add documentation
Deliverables
- Create a
RocksDBsubmodule with wrapping functions to provide extra capabilities - Add extensive testing
- Add documentation
- Add runnable examples
- Expose a
RocksDBKVStoreinterface that conforms to theMapStoreinterface - Add documentation on how it can be used with the
SMT - Add runnable examples
Non-goals / Non-deliverables
- Change the existing
MapStoreinterface - Change any existing submodules
- Rewrite
RocksDB- use an existing implementation
General deliverables
- Comments: Add/update TODOs and comments alongside the source code so it is easier to follow.
- Testing: Add new tests (unit/fuzz/benchmarks) to the test suite.
- Makefile: Add new targets to the Makefile to make the new functionality easier to use.
- Documentation: Update architectural or development READMEs; use mermaid diagrams where appropriate.
Creator: @h5law
Metadata
Metadata
Assignees
Labels
Type
Projects
Status
Ready