hiero-ledger / hiero-ledger/hiero-consensus-node

MerkleDb reads Mb/s and writes Mb/s metrics

Open
#9,026 0 comments 0 reactions 0 assignees View on GitHub
Observability P3 Platform Platform Data Structures Platform Virtual Map
Dominant language
Java
Stars
406
Forks
226
Avg merge
3d 4h
Merged PRs (30d)
210

Description

A few additional metrics would be nice to have for MerkleDb:

* writes Mb/s (flushes)
* writes Mb/s (compactions)
* reads Mb/s

Today there is a metric for flushed file size, but it's a single value reported in the end of each flush. It can be combined with flush duration, but it will give just a single point in time, while it would be better to know disk writes rate during the whole flush duration. For compactions, there is no metric for compaction time.

For reads, keep in mind that to read a single entity, much more than the size of the entity may be read from disk. For example, to read a single key, the whole bucket should be read. It must be taken into consideration for the new reads Mb/s metric.

Contributor guide

Open the contributing guide

Research direction

Start by locating the existing MerkleDb metric for flushed file size and the flush-duration reporting path. Then inspect compaction and read paths to determine the bytes and durations needed; done means reporting writes Mb/s for flushes and compactions and reads Mb/s based on all data read from disk.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
databases, performance
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.