Reduce prepared runtime overhead #7

Open
ober wants to merge 1 commit from optimize-prepared-runtime into fix-bytevector-native
Owner

Reduces prepared-statement runtime overhead on top of PR #6.\n\nChanges:\n- remove success-path exception guards from sqlite-reset and sqlite-bind helpers while preserving recorded sqlite-error state on failures\n- use scalar bound predicates for the covering-index count/avg project1 fast path\n- bump VERSION to 0.1.5\n\nLocal verification:\n- make build\n- timeout 240 gerbil env gxi tests/unit/test-api.ss\n- timeout 240 gerbil env gxi tests/unit/test-exec.ss\n- N=1000 make bench-compiled\n- N=1000 make bench-prepared-compiled\n- make binary\n- make smoke\n\nMeasured prepared samples after the change: 12.7x, 12.2x, 11.6x slower than SQLite at N=1000. This is incremental; the remaining gap is still dominated by range aggregate SELECT and indexed UPDATE execution.

Reduces prepared-statement runtime overhead on top of PR #6.\n\nChanges:\n- remove success-path exception guards from sqlite-reset and sqlite-bind helpers while preserving recorded sqlite-error state on failures\n- use scalar bound predicates for the covering-index count/avg project1 fast path\n- bump VERSION to 0.1.5\n\nLocal verification:\n- make build\n- timeout 240 gerbil env gxi tests/unit/test-api.ss\n- timeout 240 gerbil env gxi tests/unit/test-exec.ss\n- N=1000 make bench-compiled\n- N=1000 make bench-prepared-compiled\n- make binary\n- make smoke\n\nMeasured prepared samples after the change: 12.7x, 12.2x, 11.6x slower than SQLite at N=1000. This is incremental; the remaining gap is still dominated by range aggregate SELECT and indexed UPDATE execution.
Reduce prepared runtime overhead
All checks were successful
ci / test (push) Successful in 3s
ci / test (pull_request) Successful in 3s
f2228170d5
All checks were successful
ci / test (push) Successful in 3s
ci / test (pull_request) Successful in 3s
This pull request can be merged automatically.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin optimize-prepared-runtime:optimize-prepared-runtime
git switch optimize-prepared-runtime

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch fix-bytevector-native
git merge --no-ff optimize-prepared-runtime
git switch optimize-prepared-runtime
git rebase fix-bytevector-native
git switch fix-bytevector-native
git merge --ff-only optimize-prepared-runtime
git switch optimize-prepared-runtime
git rebase fix-bytevector-native
git switch fix-bytevector-native
git merge --no-ff optimize-prepared-runtime
git switch fix-bytevector-native
git merge --squash optimize-prepared-runtime
git switch fix-bytevector-native
git merge --ff-only optimize-prepared-runtime
git switch fix-bytevector-native
git merge optimize-prepared-runtime
git push origin fix-bytevector-native
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
ober/gerbil-sqlite!7
No description provided.