Test Details Overview

Cache representative keys to optimize `wallets::foreach_representative (...)` hot path (#5060)

* Cache representative keys for voting

Store unlocked representative keys in a cache so
`foreach_representative` can iterate preloaded keys instead of
walking wallet state and fetching them on every call.

Refresh the cache when representative membership or wallet lock
state changes, use `wallet::lock()` in the RPC handler, and remove
the recursive representative iteration test since recursion is no
longer supported.

* Rename compute_reps to refresh_reps

* Wallet rep key cache tests

* Refresh rep cache after wallet write txns

Move representative cache rebuilds out of active write transaction
scopes for unlock, rekey, seed, and deterministic wallet updates.

__________

Type: commit

Hash: 2a011b4859fcee1b46aeb7175915f6b163ed2fff

Created: 22 day(s) ago

__________

gr0v1ty/nano-node:2a011b4859fcee1b46aeb7175915f6b163ed2fff

Test Results

Test Case Status Duration Median Deviation Log Graph
5n4pr_conf_10k_bintree PASS 112 s -3.5 s - Show
5n4pr_conf_10k_change PASS 125 s -46.5 s - Show
5n4pr_conf_change_dependant PASS 111 s -3.0 s - -
5n4pr_conf_change_independant PASS 120 s 4.5 s - -
5n4pr_conf_send_dependant PASS 116 s 4.5 s - -
5n4pr_conf_send_independant PASS 109 s -4.5 s - -
5n4pr_rocks_10k_bintree PASS 121 s 5.5 s - -
5n4pr_rocks_10k_change FAIL 144 s -1.5 s Show -