-
Notifications
You must be signed in to change notification settings - Fork 627
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
perf(sqlite): disable pagecache overflow stat #1017
perf(sqlite): disable pagecache overflow stat #1017
Conversation
i can't find any mention of |
Got this from one of the sqlite maintainers as I was exploring contention when running in a multi thread multi connection scenario. With pure C sqlite I saw noticeable improvement when I compiled with this flag. I can see the following in the sqlite code:
|
Copying and pasting the code, I noticed I had the "define" wrong. Fixed and rebuilt correctly. |
@gotson - there's some docs on status here: https://www.sqlite.org/c3ref/c_status_malloc_count.html |
the issue i have is that there is no documentation to back this change: https://www.sqlite.org/search?s=d&q=SQLITE_DISABLE_PAGECACHE_OVERFLOW_STATS |
Got this from Dan: hadn't noticed it wasn't documented. Next time the website is published, this section: https://sqlite.org/compile.html#_options_to_disable_features_normally_turned_on Will include the text: SQLITE_DISABLE_PAGECACHE_OVERFLOW_STATS: |
@gotson, based on the above from sqlite dev, maybe we can go forward? |
Can you commit only the change in the |
@gotson done |
I suggest adding SQLITE_DISABLE_PAGECACHE_OVERFLOW_STAT to the compilation flags.
Maintaining this stat, requires a global lock, which reduces performance in multi thread applications.
Since we don't expose any API to see stats, this is rather safe.
The reasoning here is very similar to -DSQLITE_DEFAULT_MEMSTATUS=0 which is already part of our config flags.