Skip to content
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

Wrap with writer #19119

Open
wants to merge 14 commits into
base: main
Choose a base branch
from
Open

Wrap with writer #19119

wants to merge 14 commits into from

Conversation

wjblanke
Copy link
Contributor

@wjblanke wjblanke commented Jan 10, 2025

Purpose:

The db_wrapper code allows read operations to use the current write connection if it is active.

Currently the syncing operation uses distinct writes and reads which means write operations are on the writer connection and read operations are on one of the read connections across different threads.

To make life easier for sqlite, this PR wraps block syncs within one db_wrapper writer. The block sync db_wrapper operations then will use the write connection whether it is for reading or writing. The write connection always has an up to date view of the DB.

Current Behavior:

Block sync operations use multiple connections and threads

New Behavior:

Block sync operations use the writer connection

Testing Notes:

This may cause a reduction in concurrency because the db_wrapper write has its own lock. Performance would be the main concern here although with less coherency issues things should be faster.

@wjblanke wjblanke added the Changed Required label for PR that categorizes merge commit message as "Changed" for changelog label Jan 10, 2025
@wjblanke wjblanke requested a review from a team as a code owner January 10, 2025 13:17
@wjblanke wjblanke requested a review from arvidn January 10, 2025 13:17
Copy link

Pull Request Test Coverage Report for Build 12731382263

Warning: This coverage report may be inaccurate.

This pull request's base commit is no longer the HEAD commit of its target branch. This means it includes changes from outside the original pull request, including, potentially, unrelated coverage changes.

Details

  • 6 of 6 (100.0%) changed or added relevant lines in 1 file are covered.
  • 264 unchanged lines in 12 files lost coverage.
  • Overall coverage decreased (-0.03%) to 91.525%

Files with Coverage Reduction New Missed Lines %
chia/full_node/pending_tx_cache.py 1 96.55%
chia/plotters/plotters.py 1 90.94%
chia/rpc/util.py 2 95.74%
chia/consensus/blockchain.py 2 94.14%
chia/full_node/full_node_api.py 2 84.77%
chia/rpc/rpc_server.py 3 88.24%
chia/server/node_discovery.py 4 80.77%
chia/timelord/timelord_launcher.py 4 89.29%
chia/wallet/wallet_node.py 6 87.96%
chia/plotters/madmax.py 6 44.58%
Totals Coverage Status
Change from base Build 12691593511: -0.03%
Covered Lines: 105324
Relevant Lines: 114897

💛 - Coveralls

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Changed Required label for PR that categorizes merge commit message as "Changed" for changelog
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant