Skip to content

Benchmark current storage improvements #1044

@jmalicevic

Description

@jmalicevic

We need to create a testing infrastructure focused on storage in order to test and validate the storage optimizations and changes we plan to implement based on the outcome of the issues where we define metrics and understand workloads (#46), create a baseline (#67), and evaluate database engines (#64).

In order to create this testing environment, the following tasks should be performed:

  • Identify a workload that generates enough data on storage for meaningful testing (at least 10s of GB) on a single machine.
  • Containerized (Docker) environment for testing that can be run locally and in a CI environment
  • Support for multiple ComeBFT binaries compiled with all the supported databases (e.g. LevelDB, RocksDB)
  • Allow testing for multiple database configuration options
  • Generate testing output data that can be used to generate reports that can display improvements (or not) against a baseline or any other particular branch/commit.

17.01.2024.

The scope of the issue has been changed and here is the plan on what will be completed during Q1 2024.

  • Identify a workload that generates enough data for meaningful storage.
  • Record the size of the databases during the experiment

Definition of Done (DoD):

Deprioritized - left for later (open issue to continue tracking if needed):

  • Any end user (e.g. developer) can run this testing infrastructure locally without too much local configuration and can generate testing data for validating the database optimizations during the development process
  • The storage testing e2e runs in a CI infrastructure (Github actions) (optional, it is not yet well defined and not clear what it would contain).
  • Generated reports that can be shared with the community that outline the improvements accomplished as a result of optimizations and new implementations

Metadata

Metadata

Assignees

Labels

P:storage-optimizationPriority: Give operators greater control over storage and storage optimization

Type

No type

Projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions