-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Wrap with writer #19119
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
base: main
Are you sure you want to change the base?
Wrap with writer #19119
Conversation
Pull Request Test Coverage Report for Build 12734468896Warning: 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
💛 - Coveralls |
|
This pull request has conflicts, please resolve those before we can evaluate the pull request. |
|
This PR has been flagged as stale due to no activity for over 60 days. It will not be automatically closed, but it has been given a stale-pr label and should be manually reviewed by the relevant parties. |
|
This PR has been flagged as stale due to no activity for over 60 days. It will not be automatically closed, but it has been given a stale-pr label and should be manually reviewed by the relevant parties. |
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.