Skip to content

Replace Badger with Pebble DB on execution node #6939

@j1010001

Description

@j1010001

Objective

Improving stability of execution node (reducing memory spikes) reduction operational overhead (memory cost, manual interventions).

Key Results:

  1. Enable automatic data pruning. (Badger DB does not support pruning, so on long-running network removing unused data requires node downtime & manual intervention).
  2. Reduce memory requirements (Badger compaction has caused memory spikes, performance issues and outages of Execution node in the past, so far mitigated with more aggressive GC GoMemLimit setting. As the load on the DB grows these issues are likely to reoccur in the future).
  3. Reduce the risk on unsupported SW. Badger DB is a project that is not actively maintained anymore. At some point it might not be compatible with a new version of Go, which would block the upgrade of flow-go to newer versions of Go language.

DACI

Role Assigned
Driver Technical: @zhangchiqing , EM: @j1010001
Approver @Kay-Zee
Consulted @AlexHentschel, @franklywatson
Informed Flow protocol Engineering team
### Tasks
- [ ] https://github.com/onflow/flow-go/issues/6516
### Stretch goals
- [ ] https://github.com/onflow/flow-go/issues/6527

Metadata

Metadata

Assignees

Labels

ExecutionCadence Execution Team

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions