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

Switch client DB to sqlite synchronization mode NORMAL #3255

Merged
merged 1 commit into from Oct 22, 2017

Conversation

@hacst
Copy link
Member

commented Oct 22, 2017

In a userbase of primarily gamers system instabilities aren't
that uncommon. Without synchronization of the user-db this can
lead to corruption of our client database storing the
user-certificate. We have had various reports of such issues
over time.

The current mode was set in 2010 in commit 9fee66e to speed
up the client-db "even more" though it is unclear whether we
actually had performance problems that required this step.

This patch switches the client synchronization mode from OFF
to NORMAL which according to the sqlite documentation will
leave a "very small" chance for database corruption but is
than the default FULL sync mode.

This commit should partially address issue #3254 by making
database corruption much more unlikely but detecting
corruption and/or handling DB backups are further possible
approaches if this change turns out to have unacceptable
performance or we get further reports of durability issues
with the clientside DB.

@hacst hacst force-pushed the hacst:clientdbdurability branch from a2be882 to 222d9df Oct 22, 2017

Switch client DB to sqlite synchronization mode NORMAL
In a userbase of primarily gamers system instabilities aren't
that uncommon. Without synchronization of the user-db this can
lead to corruption of our client database storing the
user-certificate. We have had various reports of such issues
over time.

The current mode was set in 2010 in commit 9fee66e to speed
up the client-db "even more" though it is unclear whether we
actually had performance problems that required this step.

This patch switches the client synchronization mode from OFF
to NORMAL which according to the sqlite documentation will
leave a "very small" chance for database corruption but is
than the default FULL sync mode.

This commit should partially address issue #3254 by making
database corruption much more unlikely but detecting
corruption and/or handling DB backups are further possible
approaches if this change turns out to have unacceptable
performance or we get further reports of durability issues
with the clientside DB.

@hacst hacst force-pushed the hacst:clientdbdurability branch from 222d9df to 12de49e Oct 22, 2017

@hacst hacst changed the title Switch client DB to sqlite synchronisation mode NORMAL Switch client DB to sqlite synchronization mode NORMAL Oct 22, 2017

@Natenom
Copy link
Contributor

left a comment

Built and tested. Connecting to a server is as fast as before.

@hacst hacst removed the discussion label Oct 22, 2017

@hacst hacst merged commit 53c5a91 into mumble-voip:master Oct 22, 2017

0 of 2 checks passed

continuous-integration/appveyor/pr Waiting for AppVeyor build to complete
Details
continuous-integration/travis-ci/pr The Travis CI build is in progress
Details
@hacst

This comment has been minimized.

Copy link
Member Author

commented Oct 22, 2017

Thanks. If we see any user reports of client lags/slowdowns due to this we'll have to re-evaluate but I think we should be fine.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
2 participants
You can’t perform that action at this time.