Look into Pebble by CockroachDB a Go implementation based on RocksDB they use at CockroachDB
Look into grocksdb which is a wrapper in Go for RocksDB being actively maintained
Look into gorocksdb developed 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 MapStore and can be used with the SMT
Add documentation
Deliverables
[ ] Create a RocksDB submodule with wrapping functions to provide extra capabilities
[ ] Add extensive testing
[ ] Add documentation
[ ] Add runnable examples
[ ] Expose a RocksDBKVStore interface that conforms to the MapStore interface
[ ] Add documentation on how it can be used with the SMT
[ ] Add runnable examples
Non-goals / Non-deliverables
Change the existing MapStore interface
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.
Objective
Implement a submodule in the
kvstore
directory for aRocksDB
rocksdb
and see whether this can be used. The repoPebble
by CockroachDB a Go implementation based on RocksDB they use at CockroachDBgrocksdb
which is a wrapper in Go for RocksDB being actively maintainedgorocksdb
developed by cosmos as their Go wrapper for RocksDBOrigin 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
MapStore
and can be used with theSMT
Deliverables
RocksDB
submodule with wrapping functions to provide extra capabilitiesRocksDBKVStore
interface that conforms to theMapStore
interfaceSMT
Non-goals / Non-deliverables
MapStore
interfaceRocksDB
- use an existing implementationGeneral deliverables
Creator: @h5law