apple / apple/foundationdb

Transaction level metric collection

Open
#4,156 2 comments 0 reactions 1 assignee Claimed by @jzhou77 View on GitHub
Dominant language
C++
Stars
16.7k
Forks
1.6k
Avg merge
1d 20h
Merged PRs (30d)
126

Description

In the Record Layer, we collect various I/O metrics for a transaction by simply counting or timing various transaction calls, for example: https://github.com/FoundationDB/fdb-record-layer/blob/master/fdb-record-layer-core/src/main/java/com/apple/foundationdb/record/provider/foundationdb/InstrumentedReadTransaction.java#L99.

The problem is that this doesn't truly represent the cost of certain operations, for example for a range read, we count it has a single read when, in actuality, it may have involved many round trips to the server to satisfy. Or, maybe it required NO requests to the server because of the RYW cache. We have no one of knowing.

It would be useful if the client driver could track and expose metrics within a transaction such that we can track the real cost of the work done within the transaction.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.