Reduce DML step runtime overhead #11

Open
ober wants to merge 1 commit from optimize-dml-step-runtime into optimize-table-range-aggregate
Owner

Summary

  • use a smaller sqlite-step runtime parameter frame for DML because run-dml-locked! already installs target-specific json/user-function/collation/authorizer state
  • return SQLITE_DONE directly for non-returning DML only when no result rows or producer were installed
  • guard direct table count/avg projection lookup when no AVG slot was selected
  • bump VERSION to 0.1.9

Verification

  • make test
  • make binary && make smoke
  • N=1000 bench-prepared compiled warm: 34.642934799194336 ms vs SQLite 6.1195829999999996 ms, 5.7x
  • N=10000 bench-prepared compiled warm: 292.84214973449707 ms vs SQLite 57.272541000000004 ms, 5.1x
## Summary - use a smaller sqlite-step runtime parameter frame for DML because run-dml-locked! already installs target-specific json/user-function/collation/authorizer state - return SQLITE_DONE directly for non-returning DML only when no result rows or producer were installed - guard direct table count/avg projection lookup when no AVG slot was selected - bump VERSION to 0.1.9 ## Verification - make test - make binary && make smoke - N=1000 bench-prepared compiled warm: 34.642934799194336 ms vs SQLite 6.1195829999999996 ms, 5.7x - N=10000 bench-prepared compiled warm: 292.84214973449707 ms vs SQLite 57.272541000000004 ms, 5.1x
Reduce DML step runtime overhead
All checks were successful
ci / test (push) Successful in 4s
ci / test (pull_request) Successful in 3s
3f1202da5a
All checks were successful
ci / test (push) Successful in 4s
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-dml-step-runtime:optimize-dml-step-runtime
git switch optimize-dml-step-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 optimize-table-range-aggregate
git merge --no-ff optimize-dml-step-runtime
git switch optimize-dml-step-runtime
git rebase optimize-table-range-aggregate
git switch optimize-table-range-aggregate
git merge --ff-only optimize-dml-step-runtime
git switch optimize-dml-step-runtime
git rebase optimize-table-range-aggregate
git switch optimize-table-range-aggregate
git merge --no-ff optimize-dml-step-runtime
git switch optimize-table-range-aggregate
git merge --squash optimize-dml-step-runtime
git switch optimize-table-range-aggregate
git merge --ff-only optimize-dml-step-runtime
git switch optimize-table-range-aggregate
git merge optimize-dml-step-runtime
git push origin optimize-table-range-aggregate
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!11
No description provided.