apple / apple/foundationdb

Client-side error accounting depends on onError

Open
#4,472 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
16.7k
Forks
1.6k
Avg merge
1d 20h
Merged PRs (30d)
126

Description

Clients report some statistics about the frequency that they observe different errors (e.g. `transaction_too_old`, `future_version`, `not_committed`, etc.). These errors are counted when they are passed to the `onError` function.

There are many use-cases where clients either don't retry a transaction or write their own retry loops and don't use `onError`. In these cases, this reporting does not work.

If possible, we should try to count errors differently so that we get accurate results regardless of whether the transactions get retried with the internal mechanism.

Contributor guide

Open the contributing guide

Research direction

Start by tracing where client error statistics are recorded and how errors reach the onError callback. Determine an accounting point that also covers transactions using custom retry loops or no retry, then verify that reported frequencies remain accurate in both internal and external retry paths.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
databases, distributed-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.