mirror of
https://github.com/XRPLF/rippled.git
synced 2026-07-29 18:10:34 +00:00
Drops nodestore_read_us and everything added to reach it. read_mean_us already carries microsecond precision and separated the two sync failure modes cleanly in live testing -- 8.8 us on a clean store against a 223 us cold-store peak -- so the distribution added no signal that changed a diagnosis. The cost of getting it was disproportionate. NodeStoreScheduler had no path to the metrics registry, so its production constructor grew a ServiceRegistry parameter: a metric addition changing a production signature. That in turn forced an edit to a pre-existing test, src/test/app/SHAMapStore_test.cpp, whose only stake in this is that it constructs a scheduler. Worse, the scheduler is built in Application's member initializer list, long before metricsRegistry_ exists, so the registry could not be captured once and had to be re-resolved on every fetch -- a lookup on a path that runs millions of times per sync. The constructor returns to taking JobQueue& alone and SHAMapStore_test.cpp returns to the single-argument call, leaving that file differing from its pre-change form only by the NodeStore:: to node_store:: rename it picked up from develop. FetchReport::elapsed stays microseconds and onFetch keeps its explicit duration_cast to milliseconds for addLoadEvents, which takes milliseconds. That widening was a separate fix and is what makes read latency measurable at all. kSubMillisecondBoundaries loses its only consumer and regains [[maybe_unused]], which is the state the commit that introduced it left it in; without the attribute an unused constant is an error under wextra with werr. Also removes the ledger-data-sync panel that charted the histogram and the fetch_type and found template variables, which filtered on labels no metric emits any more, plus the runbook and reference-doc sections and the two instrument and view counts that named it. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>