Skip to content

node: Consider alternative KVStores to BadgerDB #2980

@Wondertan

Description

@Wondertan

BadgerDB is currently used as a general KVStore through Datastore interface. Many components write to it in our project - self-written and dependencies.

BadgerDB has its advantages, and it is really performant for write-heavy loads. However, it's poorly documented, barely maintained, and complicated. Understanding what config values are doing in-depth requires reading an untrivial amount of code, and passing this knowledge over to other team members is challenging. Additionally, we don't expect write-heavy loads for the general store, so we can't fully take advantage of Badger's pros.

Instead, we should consider a simpler and more read-oriented yet embeddable KVStore, which will likely use B+tree or Bitcask instead of LSM with complex compactions that are better documented and actively maintained.

Candidates in no particular order:

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions