Don't hold storage accounts lock during scan #12132
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem
Accounts scans from RPC hold:
the account storage lock duration the entire duration of the scan, which blocks replay on create_and_insert_store() during account commit.
the account index lock duration the entire duration of the scan, which blocks replay in AccountsDb store()->update_index() during account commit.
Summary of Changes
Addresses problem 1). Release storage lock after each account lookup in scan.
Compared to #12126:
Pros: Is less disruptive
Cons:
create_and_insert_store()
Fixes #