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: yesterday
__________
gr0v1ty/nano-node:2a011b4859fcee1b46aeb7175915f6b163ed2fff
| Test Case | Status | Duration | Median Deviation | Log | Graph |
|---|---|---|---|---|---|
| 5n4pr_conf_10k_bintree | PASS | 112 s | 0.0 s | - | Show |
| 5n4pr_conf_10k_change | PASS | 125 s | -75.0 s | - | Show |
| 5n4pr_conf_change_dependant | PASS | 111 s | -4.0 s | - | - |
| 5n4pr_conf_change_independant | PASS | 120 s | 0.0 s | - | - |
| 5n4pr_conf_send_dependant | PASS | 116 s | 1.0 s | - | - |
| 5n4pr_conf_send_independant | PASS | 109 s | -8.0 s | - | - |
| 5n4pr_rocks_10k_bintree | PASS | 121 s | 7.0 s | - | - |
| 5n4pr_rocks_10k_change | FAIL | 144 s | -3.0 s | Show | - |