-
Notifications
You must be signed in to change notification settings - Fork 153
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add "last known good" cache for virtual state #399
Conversation
michaelsutton
commented
Jan 18, 2024
- Optimizes many frequent P2P operations which now don't require waiting for the virtual store lock
- Improves responsiveness of RPC get metrics call
…unt for the headers phase)
…ing mempool size
…te dep on consensus
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have a few questions and requests.
Testing over mainnet looks to be stable. Will test in TN11 shortly
--------- Co-authored-by: coderofstuff <114628839+coderofstuff@users.noreply.github.com>
* make a better estimation of header count (during IBD this will now count for the headers phase) * rpc service responsiveness: use `transaction_count_sample` for inferring mempool size * use counters snapshot * introduce last known good virtual state cache * move processing counters to consensus core and remove rpc service crate dep on consensus * extract consensus stats to a single call * turn some consensus session calls into non-async + fix get_block_dag_info_call * use saturating_sub instead of checked_sub + unwrap_or_default * use join over all async calls --------- Co-authored-by: coderofstuff <114628839+coderofstuff@users.noreply.github.com> --------- Co-authored-by: coderofstuff <114628839+coderofstuff@users.noreply.github.com>
* make a better estimation of header count (during IBD this will now count for the headers phase) * rpc service responsiveness: use `transaction_count_sample` for inferring mempool size * use counters snapshot * introduce last known good virtual state cache * move processing counters to consensus core and remove rpc service crate dep on consensus * extract consensus stats to a single call * turn some consensus session calls into non-async + fix get_block_dag_info_call * use saturating_sub instead of checked_sub + unwrap_or_default * use join over all async calls --------- Co-authored-by: coderofstuff <114628839+coderofstuff@users.noreply.github.com> --------- Co-authored-by: coderofstuff <114628839+coderofstuff@users.noreply.github.com>
In summary, this pull request is all about making P2P operations more efficient by removing the need for waiting on virtual store locks. Simultaneously, it aims to improve the responsiveness of the RPC get metrics call, providing faster access to important system metrics. These optimizations contribute to an overall enhancement of system performance and responsiveness. |
* make a better estimation of header count (during IBD this will now count for the headers phase) * rpc service responsiveness: use `transaction_count_sample` for inferring mempool size * use counters snapshot * introduce last known good virtual state cache * move processing counters to consensus core and remove rpc service crate dep on consensus * extract consensus stats to a single call * turn some consensus session calls into non-async + fix get_block_dag_info_call * use saturating_sub instead of checked_sub + unwrap_or_default * use join over all async calls --------- Co-authored-by: coderofstuff <114628839+coderofstuff@users.noreply.github.com> --------- Co-authored-by: coderofstuff <114628839+coderofstuff@users.noreply.github.com>
* make a better estimation of header count (during IBD this will now count for the headers phase) * rpc service responsiveness: use `transaction_count_sample` for inferring mempool size * use counters snapshot * introduce last known good virtual state cache * move processing counters to consensus core and remove rpc service crate dep on consensus * extract consensus stats to a single call * turn some consensus session calls into non-async + fix get_block_dag_info_call * use saturating_sub instead of checked_sub + unwrap_or_default * use join over all async calls --------- Co-authored-by: coderofstuff <114628839+coderofstuff@users.noreply.github.com> --------- Co-authored-by: coderofstuff <114628839+coderofstuff@users.noreply.github.com>