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

Simplify keys read path #193

Merged
merged 9 commits into from
Nov 15, 2024
Merged

Conversation

marco6
Copy link
Collaborator

@marco6 marco6 commented Oct 28, 2024

This PR aims to simplify the read path by:

  • merging the query for {List, Count}Current with {List, Count}. The count query might have a slight increase in latency, but not important enough to care
  • solving a potential (and rare) concurrency bug for the List query: the revision was fetched after the list, so we might have returned the wrong version for the list
  • removing the logic to support mysql and postgres parameter naming
  • removing the customization hooks for other dialects

@marco6 marco6 requested a review from a team as a code owner October 28, 2024 13:30
Copy link

github-actions bot commented Oct 28, 2024

Benchmark Result

goos: linux
goarch: amd64
pkg: github.com/canonical/k8s-dqlite/test
cpu: AMD EPYC 7763 64-Core Processor                
                                        │     Before      │                 After                  │
                                        │     sec/op      │     sec/op       vs base               │
Compaction/sqlite-4                        20.47µ ±    2%    20.91µ ±    8%        ~ (p=0.259 n=7)
Compaction/dqlite-4                        43.85µ ±   11%    44.13µ ±    6%        ~ (p=0.318 n=7)
Create/sqlite/1-workers-4                  530.2µ ±    3%    536.5µ ±    6%        ~ (p=0.383 n=7)
Create/sqlite/4-workers-4                  505.0µ ±    4%    525.6µ ±   10%        ~ (p=0.259 n=7)
Create/sqlite/16-workers-4                 482.4µ ±    7%    462.6µ ±   16%        ~ (p=0.165 n=7)
Create/sqlite/64-workers-4                 492.4µ ±   63%    519.0µ ± 2113%        ~ (p=0.710 n=7)
Create/sqlite/128-workers-4                709.6µ ±  126%    691.2µ ±   15%        ~ (p=0.456 n=7)
Create/dqlite/1-workers-4                  1.134m ±    5%    1.175m ±    3%        ~ (p=0.165 n=7)
Create/dqlite/4-workers-4                  1.006m ±    2%    1.023m ±    6%        ~ (p=0.097 n=7)
Create/dqlite/16-workers-4                 995.0µ ±    6%   1011.5µ ±    5%        ~ (p=0.165 n=7)
Create/dqlite/64-workers-4                 997.4µ ±    4%    998.6µ ±    8%        ~ (p=0.902 n=7)
Create/dqlite/128-workers-4                999.3µ ±    6%    955.5µ ±    9%        ~ (p=0.535 n=7)
Delete/sqlite/1-workers-4                  476.4µ ±    8%    530.5µ ±    3%  +11.35% (p=0.001 n=7)
Delete/sqlite/4-workers-4                  507.4µ ±    3%    485.6µ ±    7%   -4.30% (p=0.017 n=7)
Delete/sqlite/16-workers-4                 467.6µ ±   11%    470.8µ ±   11%        ~ (p=1.000 n=7)
Delete/sqlite/64-workers-4                 518.5µ ±   16%    511.5µ ±   23%        ~ (p=0.710 n=7)
Delete/sqlite/128-workers-4                645.3µ ± 2628%    877.8µ ±   34%        ~ (p=0.620 n=7)
Delete/dqlite/1-workers-4                  1.170m ±    5%    1.135m ±    1%   -3.00% (p=0.026 n=7)
Delete/dqlite/4-workers-4                  999.8µ ±    5%    993.9µ ±    4%        ~ (p=0.620 n=7)
Delete/dqlite/16-workers-4                 1.043m ±    4%    1.010m ±   10%        ~ (p=0.128 n=7)
Delete/dqlite/64-workers-4                1030.1µ ±    6%    985.5µ ±    4%   -4.32% (p=0.007 n=7)
Delete/dqlite/128-workers-4               1043.4µ ±    3%    984.2µ ±    4%   -5.67% (p=0.001 n=7)
Get/sqlite-4                               247.0µ ±    1%    241.9µ ±    1%   -2.08% (p=0.001 n=7)
Get/dqlite-4                               369.6µ ±    2%    347.7µ ±    1%   -5.92% (p=0.001 n=7)
List/sqlite-tiny/all-4                     4.123µ ±    4%    4.203µ ±    9%        ~ (p=0.710 n=7)
List/sqlite-tiny/pagination-4              8.526µ ±    3%    8.749µ ±    3%        ~ (p=0.128 n=7)
List/sqlite-fits-in-page/all-4             7.974µ ±    4%    8.142µ ±    5%        ~ (p=0.155 n=7)
List/sqlite-fits-in-page/pagination-4      23.23µ ±    6%    23.21µ ±    3%        ~ (p=0.620 n=7)
List/sqlite-overflows-page/all-4           17.39µ ±    3%    17.45µ ±    5%        ~ (p=0.805 n=7)
List/sqlite-overflows-page/pagination-4    45.12µ ±    6%    43.85µ ±    9%        ~ (p=0.209 n=7)
List/dqlite-tiny/all-4                     2.936µ ±    5%    3.032µ ±    9%        ~ (p=0.091 n=7)
List/dqlite-tiny/pagination-4              6.260µ ±    1%    6.043µ ±    2%   -3.47% (p=0.001 n=7)
List/dqlite-fits-in-page/all-4             6.765µ ±    4%    6.893µ ±    4%        ~ (p=0.535 n=7)
List/dqlite-fits-in-page/pagination-4      18.07µ ±    3%    17.57µ ±    4%        ~ (p=0.053 n=7)
List/dqlite-overflows-page/all-4           22.27µ ±    2%    22.01µ ±    5%        ~ (p=0.209 n=7)
List/dqlite-overflows-page/pagination-4    45.26µ ±    1%    46.30µ ±    6%        ~ (p=0.073 n=7)
Update/sqlite/1-workers-4                  544.9µ ±    2%    538.1µ ±    6%        ~ (p=0.209 n=7)
Update/sqlite/4-workers-4                  519.3µ ±   12%    522.1µ ±    9%        ~ (p=0.710 n=7)
Update/sqlite/16-workers-4                 496.3µ ±    5%    478.2µ ±    5%   -3.64% (p=0.007 n=7)
Update/sqlite/64-workers-4                 625.5µ ± 4743%    579.9µ ±   82%        ~ (p=0.620 n=7)
Update/sqlite/128-workers-4                916.8µ ± 7615%    973.3µ ±  136%        ~ (p=0.710 n=7)
Update/dqlite/1-workers-4                  1.176m ±    3%    1.167m ±    6%        ~ (p=0.710 n=7)
Update/dqlite/4-workers-4                  1.025m ±    6%    1.031m ±    3%        ~ (p=0.710 n=7)
Update/dqlite/16-workers-4                1045.5µ ±    5%    995.4µ ±   11%        ~ (p=0.053 n=7)
Update/dqlite/64-workers-4                 1.055m ±    7%    1.011m ±    6%   -4.11% (p=0.011 n=7)
Update/dqlite/128-workers-4                1.093m ±    3%    1.028m ±    4%   -5.94% (p=0.004 n=7)
geomean                                    216.7µ            216.8µ           +0.05%

                                        │        Before        │                    After                     │
                                        │ page-cache-misses/op │ page-cache-misses/op  vs base                │
Compaction/sqlite-4                               0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Compaction/dqlite-4                               0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Create/sqlite/1-workers-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Create/sqlite/4-workers-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Create/sqlite/16-workers-4                        0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Create/sqlite/64-workers-4                        0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Create/sqlite/128-workers-4                       0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Create/dqlite/1-workers-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Create/dqlite/4-workers-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Create/dqlite/16-workers-4                        0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Create/dqlite/64-workers-4                        0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Create/dqlite/128-workers-4                       0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Delete/sqlite/1-workers-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Delete/sqlite/4-workers-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Delete/sqlite/16-workers-4                        0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Delete/sqlite/64-workers-4                        0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Delete/sqlite/128-workers-4                       0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Delete/dqlite/1-workers-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Delete/dqlite/4-workers-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Delete/dqlite/16-workers-4                        0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Delete/dqlite/64-workers-4                        0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Delete/dqlite/128-workers-4                       0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Get/sqlite-4                                      0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Get/dqlite-4                                      0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/sqlite-tiny/all-4                            0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/sqlite-tiny/pagination-4                     0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/sqlite-fits-in-page/all-4                    0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/sqlite-fits-in-page/pagination-4             0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/sqlite-overflows-page/all-4                  0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/sqlite-overflows-page/pagination-4           0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/dqlite-tiny/all-4                            0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/dqlite-tiny/pagination-4                     0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/dqlite-fits-in-page/all-4                    0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/dqlite-fits-in-page/pagination-4             0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/dqlite-overflows-page/all-4                  0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/dqlite-overflows-page/pagination-4           0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Update/sqlite/1-workers-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Update/sqlite/4-workers-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Update/sqlite/16-workers-4                        0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Update/sqlite/64-workers-4                        0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Update/sqlite/128-workers-4                       0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Update/dqlite/1-workers-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Update/dqlite/4-workers-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Update/dqlite/16-workers-4                        0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Update/dqlite/64-workers-4                        0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Update/dqlite/128-workers-4                       0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
geomean                                                      ²                         +0.00%               ²
¹ all samples are equal
² summaries must be >0 to compute geomean

                                        │        Before        │                    After                     │
                                        │ page-cache-spills/op │ page-cache-spills/op  vs base                │
Compaction/sqlite-4                               0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Compaction/dqlite-4                               0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Create/sqlite/1-workers-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Create/sqlite/4-workers-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Create/sqlite/16-workers-4                        0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Create/sqlite/64-workers-4                        0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Create/sqlite/128-workers-4                       0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Create/dqlite/1-workers-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Create/dqlite/4-workers-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Create/dqlite/16-workers-4                        0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Create/dqlite/64-workers-4                        0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Create/dqlite/128-workers-4                       0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Delete/sqlite/1-workers-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Delete/sqlite/4-workers-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Delete/sqlite/16-workers-4                        0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Delete/sqlite/64-workers-4                        0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Delete/sqlite/128-workers-4                       0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Delete/dqlite/1-workers-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Delete/dqlite/4-workers-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Delete/dqlite/16-workers-4                        0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Delete/dqlite/64-workers-4                        0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Delete/dqlite/128-workers-4                       0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Get/sqlite-4                                      0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Get/dqlite-4                                      0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/sqlite-tiny/all-4                            0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/sqlite-tiny/pagination-4                     0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/sqlite-fits-in-page/all-4                    0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/sqlite-fits-in-page/pagination-4             0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/sqlite-overflows-page/all-4                  0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/sqlite-overflows-page/pagination-4           0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/dqlite-tiny/all-4                            0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/dqlite-tiny/pagination-4                     0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/dqlite-fits-in-page/all-4                    0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/dqlite-fits-in-page/pagination-4             0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/dqlite-overflows-page/all-4                  0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/dqlite-overflows-page/pagination-4           0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Update/sqlite/1-workers-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Update/sqlite/4-workers-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Update/sqlite/16-workers-4                        0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Update/sqlite/64-workers-4                        0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Update/sqlite/128-workers-4                       0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Update/dqlite/1-workers-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Update/dqlite/4-workers-4                         0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Update/dqlite/16-workers-4                        0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Update/dqlite/64-workers-4                        0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
Update/dqlite/128-workers-4                       0.000 ± 0%               0.000 ± 0%       ~ (p=1.000 n=7) ¹
geomean                                                      ²                         +0.00%               ²
¹ all samples are equal
² summaries must be >0 to compute geomean

                                        │    Before     │                After                 │
                                        │ page-reads/op │ page-reads/op  vs base               │
Compaction/sqlite-4                        12.24 ±   1%     12.27 ±  1%        ~ (p=0.196 n=7)
Compaction/dqlite-4                        12.19 ±   1%     12.32 ±  2%        ~ (p=0.414 n=7)
Create/sqlite/1-workers-4                  13.83 ±   0%     13.84 ±  0%        ~ (p=0.837 n=7)
Create/sqlite/4-workers-4                  12.58 ±   2%     12.57 ±  2%        ~ (p=0.877 n=7)
Create/sqlite/16-workers-4                 11.18 ±   6%     10.68 ±  2%        ~ (p=0.318 n=7)
Create/sqlite/64-workers-4                 8.877 ±   8%     9.040 ± 50%        ~ (p=0.535 n=7)
Create/sqlite/128-workers-4                8.159 ±   3%     8.466 ±  3%   +3.76% (p=0.007 n=7)
Create/dqlite/1-workers-4                  13.38 ±   1%     13.39 ±  1%        ~ (p=0.830 n=7)
Create/dqlite/4-workers-4                  11.04 ±   1%     10.99 ±  1%        ~ (p=0.219 n=7)
Create/dqlite/16-workers-4                 11.11 ±   2%     11.12 ±  1%        ~ (p=1.000 n=7)
Create/dqlite/64-workers-4                 11.10 ±   1%     11.09 ±  2%        ~ (p=0.924 n=7)
Create/dqlite/128-workers-4                11.12 ±   1%     11.14 ±  2%        ~ (p=0.689 n=7)
Delete/sqlite/1-workers-4                  16.23 ±   0%     16.24 ±  0%        ~ (p=0.825 n=7)
Delete/sqlite/4-workers-4                  14.62 ±   5%     14.42 ±  3%        ~ (p=0.090 n=7)
Delete/sqlite/16-workers-4                 12.29 ±   3%     12.16 ± 11%        ~ (p=0.172 n=7)
Delete/sqlite/64-workers-4                 10.05 ±   7%     10.34 ±  3%        ~ (p=0.091 n=7)
Delete/sqlite/128-workers-4                9.316 ±  44%     9.609 ±  3%   +3.15% (p=0.026 n=7)
Delete/dqlite/1-workers-4                  15.96 ±   1%     15.88 ±  2%        ~ (p=0.474 n=7)
Delete/dqlite/4-workers-4                  13.54 ±   1%     13.55 ±  1%        ~ (p=0.830 n=7)
Delete/dqlite/16-workers-4                 13.66 ±   1%     13.56 ±  1%        ~ (p=0.192 n=7)
Delete/dqlite/64-workers-4                 13.58 ±   1%     13.50 ±  3%   -0.59% (p=0.048 n=7)
Delete/dqlite/128-workers-4                13.51 ±   1%     13.39 ±  1%        ~ (p=0.052 n=7)
Get/sqlite-4                               14.95 ±   0%     14.96 ±  0%        ~ (p=0.167 n=7)
Get/dqlite-4                               11.97 ±   0%     11.97 ±  0%        ~ (p=0.816 n=7)
List/sqlite-tiny/all-4                    192.1m ±   1%    192.6m ±  2%        ~ (p=0.375 n=7)
List/sqlite-tiny/pagination-4              1.131 ±   0%     1.133 ±  0%   +0.18% (p=0.001 n=7)
List/sqlite-fits-in-page/all-4            164.4m ±   1%    164.8m ±  1%        ~ (p=0.376 n=7)
List/sqlite-fits-in-page/pagination-4     962.5m ±   3%    965.1m ±  3%        ~ (p=0.175 n=7)
List/sqlite-overflows-page/all-4          177.1m ±   0%    177.2m ±  0%        ~ (p=0.286 n=7)
List/sqlite-overflows-page/pagination-4    1.846 ±  16%     1.459 ± 42%  -20.96% (p=0.046 n=7)
List/dqlite-tiny/all-4                    191.4m ±   0%    191.5m ±  1%        ~ (p=0.298 n=7)
List/dqlite-tiny/pagination-4              1.126 ±   0%     1.125 ±  3%        ~ (p=0.070 n=7)
List/dqlite-fits-in-page/all-4            164.0m ±   0%    164.1m ±  0%        ~ (p=0.279 n=7)
List/dqlite-fits-in-page/pagination-4     955.3m ±   0%    953.7m ±  3%        ~ (p=0.137 n=7)
List/dqlite-overflows-page/all-4          184.0m ±   0%    184.0m ±  0%        ~ (p=0.557 n=7)
List/dqlite-overflows-page/pagination-4    1.071 ±   3%     1.072 ±  3%        ~ (p=0.141 n=7)
Update/sqlite/1-workers-4                  15.78 ±   0%     15.77 ±  0%        ~ (p=0.384 n=7)
Update/sqlite/4-workers-4                  14.47 ±   2%     14.49 ±  2%        ~ (p=0.710 n=7)
Update/sqlite/16-workers-4                 12.60 ±   3%     12.89 ±  4%        ~ (p=0.364 n=7)
Update/sqlite/64-workers-4                 11.33 ±  41%     11.13 ±  2%        ~ (p=0.557 n=7)
Update/sqlite/128-workers-4                10.90 ± 238%     10.13 ± 15%   -7.06% (p=0.017 n=7)
Update/dqlite/1-workers-4                  15.48 ±   1%     15.50 ±  1%        ~ (p=0.927 n=7)
Update/dqlite/4-workers-4                  12.93 ±   2%     12.96 ±  1%        ~ (p=0.597 n=7)
Update/dqlite/16-workers-4                 12.99 ±   1%     12.96 ±  1%        ~ (p=0.793 n=7)
Update/dqlite/64-workers-4                 13.05 ±   4%     12.88 ±  1%   -1.30% (p=0.010 n=7)
Update/dqlite/128-workers-4                13.64 ±   7%     12.80 ±  1%   -6.16% (p=0.037 n=7)
geomean                                    5.254            5.215         -0.73%

                                        │     Before      │                 After                  │
                                        │ page-writes/op  │ page-writes/op  vs base                │
Compaction/sqlite-4                       190.3m ±   0%        190.3m ± 0%       ~ (p=0.829 n=7)
Compaction/dqlite-4                       187.3m ±   1%        187.9m ± 0%       ~ (p=0.273 n=7)
Create/sqlite/1-workers-4                  4.352 ±   0%         4.352 ± 0%       ~ (p=0.289 n=7)
Create/sqlite/4-workers-4                  4.322 ±   0%         4.297 ± 1%  -0.58% (p=0.024 n=7)
Create/sqlite/16-workers-4                 4.296 ±   1%         4.279 ± 1%       ~ (p=0.874 n=7)
Create/sqlite/64-workers-4                 4.226 ±   1%         4.226 ± 5%       ~ (p=0.733 n=7)
Create/sqlite/128-workers-4                4.192 ±   2%         4.223 ± 1%       ~ (p=0.053 n=7)
Create/dqlite/1-workers-4                  4.217 ±   1%         4.198 ± 1%       ~ (p=0.194 n=7)
Create/dqlite/4-workers-4                  4.283 ±   1%         4.261 ± 1%       ~ (p=0.054 n=7)
Create/dqlite/16-workers-4                 4.283 ±   2%         4.283 ± 1%       ~ (p=0.980 n=7)
Create/dqlite/64-workers-4                 4.287 ±   1%         4.280 ± 1%       ~ (p=0.456 n=7)
Create/dqlite/128-workers-4                4.281 ±   1%         4.293 ± 1%       ~ (p=0.104 n=7)
Delete/sqlite/1-workers-4                  4.388 ±   0%         4.387 ± 0%       ~ (p=0.974 n=7)
Delete/sqlite/4-workers-4                  4.376 ±   1%         4.363 ± 1%       ~ (p=0.318 n=7)
Delete/sqlite/16-workers-4                 4.354 ±   1%         4.377 ± 1%       ~ (p=0.383 n=7)
Delete/sqlite/64-workers-4                 4.380 ±   2%         4.371 ± 1%       ~ (p=0.302 n=7)
Delete/sqlite/128-workers-4                4.323 ±   5%         4.332 ± 1%       ~ (p=0.318 n=7)
Delete/dqlite/1-workers-4                  4.372 ±   1%         4.373 ± 1%       ~ (p=0.978 n=7)
Delete/dqlite/4-workers-4                  4.384 ±   1%         4.378 ± 1%       ~ (p=0.598 n=7)
Delete/dqlite/16-workers-4                 4.361 ±   1%         4.364 ± 0%       ~ (p=1.000 n=7)
Delete/dqlite/64-workers-4                 4.347 ±   1%         4.363 ± 1%       ~ (p=0.435 n=7)
Delete/dqlite/128-workers-4                4.357 ±   1%         4.343 ± 0%       ~ (p=0.175 n=7)
Get/sqlite-4                               0.000 ±   0%         0.000 ± 0%       ~ (p=1.000 n=7) ¹
Get/dqlite-4                               0.000 ±   0%         0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/sqlite-tiny/all-4                     0.000 ±   0%         0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/sqlite-tiny/pagination-4              0.000 ±   0%         0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/sqlite-fits-in-page/all-4             0.000 ±   0%         0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/sqlite-fits-in-page/pagination-4      0.000 ±   0%         0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/sqlite-overflows-page/all-4           0.000 ±   0%         0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/sqlite-overflows-page/pagination-4    0.000 ±   0%         0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/dqlite-tiny/all-4                     0.000 ±   0%         0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/dqlite-tiny/pagination-4              0.000 ±   0%         0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/dqlite-fits-in-page/all-4             0.000 ±   0%         0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/dqlite-fits-in-page/pagination-4      0.000 ±   0%         0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/dqlite-overflows-page/all-4           0.000 ±   0%         0.000 ± 0%       ~ (p=1.000 n=7) ¹
List/dqlite-overflows-page/pagination-4    0.000 ±   0%         0.000 ± 0%       ~ (p=1.000 n=7) ¹
Update/sqlite/1-workers-4                  4.238 ±   0%         4.239 ± 0%       ~ (p=0.450 n=7)
Update/sqlite/4-workers-4                  4.319 ±   0%         4.292 ± 1%  -0.63% (p=0.005 n=7)
Update/sqlite/16-workers-4                 4.323 ±   1%         4.304 ± 1%       ~ (p=0.104 n=7)
Update/sqlite/64-workers-4                 4.344 ±  31%         4.274 ± 1%  -1.61% (p=0.001 n=7)
Update/sqlite/128-workers-4                4.527 ± 658%         4.249 ± 4%  -6.14% (p=0.002 n=7)
Update/dqlite/1-workers-4                  4.209 ±   0%         4.209 ± 0%       ~ (p=0.978 n=7)
Update/dqlite/4-workers-4                  4.218 ±   1%         4.201 ± 0%       ~ (p=0.176 n=7)
Update/dqlite/16-workers-4                 4.240 ±   1%         4.221 ± 0%       ~ (p=0.154 n=7)
Update/dqlite/64-workers-4                 4.314 ±   3%         4.233 ± 1%  -1.88% (p=0.017 n=7)
Update/dqlite/128-workers-4                4.486 ±   6%         4.238 ± 1%  -5.53% (p=0.017 n=7)
geomean                                                 ²                   -0.39%               ²
¹ all samples are equal
² summaries must be >0 to compute geomean

                                        │     Before     │                 After                 │
                                        │ sec-reading/op │ sec-reading/op  vs base               │
Compaction/sqlite-4                        28.70µ ±  10%    28.70µ ±  33%        ~ (p=1.000 n=7)
Compaction/dqlite-4                        36.50µ ±  76%    28.40µ ±  28%        ~ (p=0.259 n=7)
Create/sqlite/1-workers-4                  20.90µ ±  28%    21.60µ ±  25%        ~ (p=0.197 n=7)
Create/sqlite/4-workers-4                  21.60µ ±  32%    20.40µ ±  29%        ~ (p=0.383 n=7)
Create/sqlite/16-workers-4                 22.70µ ±  17%    23.60µ ±  16%        ~ (p=0.620 n=7)
Create/sqlite/64-workers-4                 23.90µ ±  26%    25.20µ ± 138%        ~ (p=0.805 n=7)
Create/sqlite/128-workers-4                23.90µ ±  56%    24.50µ ±  61%        ~ (p=0.837 n=7)
Create/dqlite/1-workers-4                  9.800µ ±  23%   12.000µ ±  42%        ~ (p=0.165 n=7)
Create/dqlite/4-workers-4                  11.50µ ±  57%    11.90µ ±  32%        ~ (p=0.710 n=7)
Create/dqlite/16-workers-4                 11.10µ ±  37%    10.00µ ±  58%        ~ (p=0.902 n=7)
Create/dqlite/64-workers-4                 9.100µ ±  49%   12.000µ ±  26%        ~ (p=0.070 n=7)
Create/dqlite/128-workers-4               13.300µ ±  47%    9.800µ ±  53%        ~ (p=0.119 n=7)
Delete/sqlite/1-workers-4                  32.80µ ±  20%    32.80µ ±  22%        ~ (p=0.929 n=7)
Delete/sqlite/4-workers-4                  34.40µ ±  15%    33.30µ ±  12%        ~ (p=0.805 n=7)
Delete/sqlite/16-workers-4                 35.20µ ±   5%    34.40µ ±  22%        ~ (p=0.383 n=7)
Delete/sqlite/64-workers-4                 39.10µ ±  16%    36.70µ ±  26%        ~ (p=0.710 n=7)
Delete/sqlite/128-workers-4                42.60µ ± 158%    33.30µ ±  47%        ~ (p=0.097 n=7)
Delete/dqlite/1-workers-4                  14.30µ ±  39%    14.50µ ±  43%        ~ (p=1.000 n=7)
Delete/dqlite/4-workers-4                  17.70µ ±  23%    16.00µ ±  28%        ~ (p=0.175 n=7)
Delete/dqlite/16-workers-4                 16.10µ ±  20%    17.90µ ±  38%        ~ (p=0.332 n=7)
Delete/dqlite/64-workers-4                 17.00µ ±  25%    17.60µ ±  36%        ~ (p=0.874 n=7)
Delete/dqlite/128-workers-4                18.60µ ±  35%    17.60µ ±  31%        ~ (p=0.980 n=7)
Get/sqlite-4                               66.20µ ±   9%    64.90µ ±   3%        ~ (p=0.334 n=7)
Get/dqlite-4                               33.60µ ±  13%    34.40µ ±  11%        ~ (p=0.643 n=7)
List/sqlite-tiny/all-4                     7.400µ ±  18%    7.900µ ±  33%        ~ (p=0.442 n=7)
List/sqlite-tiny/pagination-4              15.00µ ±   3%    16.80µ ±   7%  +12.00% (p=0.001 n=7)
List/sqlite-fits-in-page/all-4             14.20µ ±  15%    14.80µ ±  16%        ~ (p=0.175 n=7)
List/sqlite-fits-in-page/pagination-4      39.60µ ±  15%    39.20µ ±   3%        ~ (p=0.876 n=7)
List/sqlite-overflows-page/all-4           13.70µ ±   4%    13.40µ ±   4%        ~ (p=0.237 n=7)
List/sqlite-overflows-page/pagination-4    54.30µ ±  14%    46.10µ ±  36%        ~ (p=0.053 n=7)
List/dqlite-tiny/all-4                     4.100µ ±  22%    4.200µ ±  21%        ~ (p=0.144 n=7)
List/dqlite-tiny/pagination-4              9.500µ ±   8%    8.300µ ±   8%  -12.63% (p=0.003 n=7)
List/dqlite-fits-in-page/all-4             9.300µ ±  24%   11.000µ ±  19%        ~ (p=0.484 n=7)
List/dqlite-fits-in-page/pagination-4      28.40µ ±  13%    23.60µ ±  32%        ~ (p=0.137 n=7)
List/dqlite-overflows-page/all-4           35.90µ ±   2%    35.70µ ±  13%        ~ (p=0.335 n=7)
List/dqlite-overflows-page/pagination-4    69.30µ ±  11%    69.50µ ±  19%        ~ (p=0.927 n=7)
Update/sqlite/1-workers-4                  18.90µ ±  29%    18.00µ ±  33%        ~ (p=0.383 n=7)
Update/sqlite/4-workers-4                  22.30µ ±  20%    18.50µ ±  45%        ~ (p=0.218 n=7)
Update/sqlite/16-workers-4                 20.40µ ±  30%    21.40µ ±  13%        ~ (p=0.829 n=7)
Update/sqlite/64-workers-4                 25.60µ ± 161%    22.80µ ±  19%        ~ (p=0.318 n=7)
Update/sqlite/128-workers-4                30.50µ ± 993%    25.00µ ±  29%        ~ (p=0.165 n=7)
Update/dqlite/1-workers-4                  11.30µ ±  47%    12.50µ ±  38%        ~ (p=0.927 n=7)
Update/dqlite/4-workers-4                  12.80µ ±  42%    11.30µ ±  58%        ~ (p=1.000 n=7)
Update/dqlite/16-workers-4                 13.80µ ±  22%    11.00µ ±  29%  -20.29% (p=0.036 n=7)
Update/dqlite/64-workers-4                 11.50µ ±  63%    10.50µ ±  42%        ~ (p=0.163 n=7)
Update/dqlite/128-workers-4                10.50µ ±  44%    13.00µ ±  63%        ~ (p=0.244 n=7)
geomean                                    19.68µ           19.20µ          -2.48%

                                        │      Before      │                  After                  │
                                        │  sec-writing/op  │ sec-writing/op  vs base                 │
Compaction/sqlite-4                       9.300µ ±    4%      9.500µ ±  24%        ~ (p=0.243 n=7)
Compaction/dqlite-4                       7.000µ ±   11%      7.400µ ±   7%   +5.71% (p=0.019 n=7)
Create/sqlite/1-workers-4                 289.4µ ±    8%      300.6µ ±  10%        ~ (p=0.902 n=7)
Create/sqlite/4-workers-4                 1.548m ±   10%      1.617m ±  19%        ~ (p=0.620 n=7)
Create/sqlite/16-workers-4                5.503m ±    6%      5.683m ±  17%        ~ (p=0.383 n=7)
Create/sqlite/64-workers-4                19.42m ±    6%      20.37m ± 359%   +4.89% (p=0.017 n=7)
Create/sqlite/128-workers-4               38.74m ±   33%      38.50m ±  12%        ~ (p=0.456 n=7)
Create/dqlite/1-workers-4                 41.90µ ±   41%      46.90µ ±  25%        ~ (p=0.805 n=7)
Create/dqlite/4-workers-4                 45.00µ ±   32%      47.00µ ±  26%        ~ (p=0.902 n=7)
Create/dqlite/16-workers-4                43.10µ ±   38%      43.50µ ±  20%        ~ (p=1.000 n=7)
Create/dqlite/64-workers-4                44.30µ ±   16%      44.30µ ±  21%        ~ (p=0.883 n=7)
Create/dqlite/128-workers-4               44.00µ ±   27%      47.20µ ±  15%        ~ (p=0.383 n=7)
Delete/sqlite/1-workers-4                 240.4µ ±   25%      308.4µ ±  11%  +28.29% (p=0.004 n=7)
Delete/sqlite/4-workers-4                 1.524m ±   15%      1.515m ±   8%        ~ (p=0.710 n=7)
Delete/sqlite/16-workers-4                5.625m ±    9%      5.484m ±   6%        ~ (p=0.456 n=7)
Delete/sqlite/64-workers-4                19.38m ±    7%      19.37m ±   7%        ~ (p=0.620 n=7)
Delete/sqlite/128-workers-4               38.58m ±  424%      40.14m ±   9%        ~ (p=0.805 n=7)
Delete/dqlite/1-workers-4                 52.60µ ±   17%      37.70µ ±  25%  -28.33% (p=0.002 n=7)
Delete/dqlite/4-workers-4                 45.80µ ±   24%      50.10µ ±  23%        ~ (p=0.902 n=7)
Delete/dqlite/16-workers-4                49.20µ ±   23%      50.10µ ±  22%        ~ (p=0.737 n=7)
Delete/dqlite/64-workers-4                51.70µ ±   12%      46.70µ ±  19%        ~ (p=0.456 n=7)
Delete/dqlite/128-workers-4               47.60µ ±   26%      43.90µ ±  21%        ~ (p=0.128 n=7)
Get/sqlite-4                               0.000 ±    0%       0.000 ±   0%        ~ (p=1.000 n=7) ¹
Get/dqlite-4                               0.000 ±    0%       0.000 ±   0%        ~ (p=1.000 n=7) ¹
List/sqlite-tiny/all-4                     0.000 ±    0%       0.000 ±   0%        ~ (p=1.000 n=7) ¹
List/sqlite-tiny/pagination-4              0.000 ±    0%       0.000 ±   0%        ~ (p=1.000 n=7) ¹
List/sqlite-fits-in-page/all-4             0.000 ±    0%       0.000 ±   0%        ~ (p=1.000 n=7) ¹
List/sqlite-fits-in-page/pagination-4      0.000 ±    0%       0.000 ±   0%        ~ (p=1.000 n=7) ¹
List/sqlite-overflows-page/all-4           0.000 ±    0%       0.000 ±   0%        ~ (p=1.000 n=7) ¹
List/sqlite-overflows-page/pagination-4    0.000 ±    0%       0.000 ±   0%        ~ (p=1.000 n=7) ¹
List/dqlite-tiny/all-4                     0.000 ±    0%       0.000 ±   0%        ~ (p=1.000 n=7) ¹
List/dqlite-tiny/pagination-4              0.000 ±    0%       0.000 ±   0%        ~ (p=1.000 n=7) ¹
List/dqlite-fits-in-page/all-4             0.000 ±    0%       0.000 ±   0%        ~ (p=1.000 n=7) ¹
List/dqlite-fits-in-page/pagination-4      0.000 ±    0%       0.000 ±   0%        ~ (p=1.000 n=7) ¹
List/dqlite-overflows-page/all-4           0.000 ±    0%       0.000 ±   0%        ~ (p=1.000 n=7) ¹
List/dqlite-overflows-page/pagination-4    0.000 ±    0%       0.000 ±   0%        ~ (p=1.000 n=7) ¹
Update/sqlite/1-workers-4                 307.7µ ±    8%      302.9µ ±  13%        ~ (p=0.535 n=7)
Update/sqlite/4-workers-4                 1.629m ±    6%      1.579m ±  14%        ~ (p=0.333 n=7)
Update/sqlite/16-workers-4                6.123m ±   15%      5.632m ±   3%        ~ (p=0.209 n=7)
Update/sqlite/64-workers-4                20.89m ± 1143%      20.71m ±  13%        ~ (p=0.620 n=7)
Update/sqlite/128-workers-4               43.90m ± 1822%      44.93m ±  46%        ~ (p=0.620 n=7)
Update/dqlite/1-workers-4                 33.60µ ±   41%      35.00µ ±  46%        ~ (p=0.456 n=7)
Update/dqlite/4-workers-4                 42.90µ ±   32%      40.90µ ±  26%        ~ (p=0.902 n=7)
Update/dqlite/16-workers-4                46.50µ ±   30%      41.90µ ±  18%        ~ (p=0.456 n=7)
Update/dqlite/64-workers-4                46.80µ ±   18%      44.10µ ±  17%        ~ (p=0.878 n=7)
Update/dqlite/128-workers-4               42.70µ ±   31%      40.80µ ±  22%        ~ (p=0.318 n=7)
geomean                                                  ²                    -0.03%               ²
¹ all samples are equal
² summaries must be >0 to compute geomean

                                        │     Before     │                After                 │
                                        │      B/op      │     B/op       vs base               │
Compaction/sqlite-4                       2.356Ki ±  11%   2.354Ki ± 42%        ~ (p=0.830 n=7)
Compaction/dqlite-4                       6.279Ki ±  92%   4.901Ki ± 28%        ~ (p=0.259 n=7)
Create/sqlite/1-workers-4                 20.50Ki ±   0%   20.51Ki ±  0%        ~ (p=0.264 n=7)
Create/sqlite/4-workers-4                 20.50Ki ±   0%   20.50Ki ±  0%        ~ (p=0.735 n=7)
Create/sqlite/16-workers-4                20.49Ki ±   0%   20.48Ki ±  0%        ~ (p=0.476 n=7)
Create/sqlite/64-workers-4                20.55Ki ±   0%   20.53Ki ± 11%        ~ (p=0.902 n=7)
Create/sqlite/128-workers-4               20.65Ki ±   1%   20.65Ki ±  0%        ~ (p=0.620 n=7)
Create/dqlite/1-workers-4                 19.75Ki ±   0%   19.76Ki ±  0%        ~ (p=0.118 n=7)
Create/dqlite/4-workers-4                 19.72Ki ±   0%   19.73Ki ±  0%        ~ (p=0.206 n=7)
Create/dqlite/16-workers-4                19.74Ki ±   0%   19.74Ki ±  0%        ~ (p=0.640 n=7)
Create/dqlite/64-workers-4                19.75Ki ±   0%   19.75Ki ±  0%        ~ (p=0.727 n=7)
Create/dqlite/128-workers-4               19.76Ki ±   0%   19.75Ki ±  0%        ~ (p=0.600 n=7)
Delete/sqlite/1-workers-4                 22.92Ki ±   0%   22.94Ki ±  0%   +0.08% (p=0.001 n=7)
Delete/sqlite/4-workers-4                 22.94Ki ±   0%   22.92Ki ±  0%   -0.09% (p=0.012 n=7)
Delete/sqlite/16-workers-4                22.90Ki ±   0%   22.91Ki ±  0%        ~ (p=0.736 n=7)
Delete/sqlite/64-workers-4                22.93Ki ±   0%   22.94Ki ±  0%        ~ (p=0.971 n=7)
Delete/sqlite/128-workers-4               23.05Ki ±  12%   23.07Ki ±  0%        ~ (p=0.902 n=7)
Delete/dqlite/1-workers-4                 22.03Ki ±   0%   22.03Ki ±  0%        ~ (p=0.329 n=7)
Delete/dqlite/4-workers-4                 22.00Ki ±   0%   21.99Ki ±  0%        ~ (p=0.686 n=7)
Delete/dqlite/16-workers-4                22.01Ki ±   0%   22.00Ki ±  0%   -0.05% (p=0.026 n=7)
Delete/dqlite/64-workers-4                22.02Ki ±   0%   22.00Ki ± 10%   -0.08% (p=0.041 n=7)
Delete/dqlite/128-workers-4               22.03Ki ±   0%   22.04Ki ±  0%        ~ (p=0.433 n=7)
Get/sqlite-4                              24.42Ki ±   0%   24.50Ki ±  0%   +0.32% (p=0.001 n=7)
Get/dqlite-4                              23.25Ki ±   0%   23.31Ki ±  0%   +0.26% (p=0.001 n=7)
List/sqlite-tiny/all-4                    1.238Ki ±  10%   1.279Ki ± 20%        ~ (p=0.710 n=7)
List/sqlite-tiny/pagination-4             1.578Ki ±   3%   1.766Ki ±  4%  +11.88% (p=0.001 n=7)
List/sqlite-fits-in-page/all-4            7.694Ki ±  17%   7.700Ki ±  9%        ~ (p=0.318 n=7)
List/sqlite-fits-in-page/pagination-4     10.67Ki ±  11%   10.86Ki ±  4%        ~ (p=0.318 n=7)
List/sqlite-overflows-page/all-4          20.53Ki ±  12%   20.53Ki ± 12%        ~ (p=0.696 n=7)
List/sqlite-overflows-page/pagination-4   34.38Ki ±  17%   26.84Ki ± 58%        ~ (p=0.053 n=7)
List/dqlite-tiny/all-4                    1.019Ki ±   7%   1.049Ki ±  7%        ~ (p=0.640 n=7)
List/dqlite-tiny/pagination-4               953.0 ±   4%     953.0 ±  4%        ~ (p=0.825 n=7)
List/dqlite-fits-in-page/all-4            6.020Ki ±   8%   6.078Ki ±  9%        ~ (p=0.209 n=7)
List/dqlite-fits-in-page/pagination-4     5.569Ki ±   4%   5.455Ki ± 14%        ~ (p=0.620 n=7)
List/dqlite-overflows-page/all-4          30.22Ki ±   7%   30.38Ki ±  2%        ~ (p=0.259 n=7)
List/dqlite-overflows-page/pagination-4   29.66Ki ±   5%   30.52Ki ± 14%        ~ (p=0.165 n=7)
Update/sqlite/1-workers-4                 22.30Ki ±   0%   22.30Ki ±  0%        ~ (p=0.429 n=7)
Update/sqlite/4-workers-4                 22.31Ki ±   0%   22.29Ki ±  0%   -0.07% (p=0.006 n=7)
Update/sqlite/16-workers-4                22.39Ki ±   0%   22.28Ki ±  0%   -0.46% (p=0.001 n=7)
Update/sqlite/64-workers-4                22.74Ki ±  49%   22.29Ki ±  0%   -1.97% (p=0.001 n=7)
Update/sqlite/128-workers-4               23.93Ki ± 708%   22.34Ki ±  1%   -6.64% (p=0.002 n=7)
Update/dqlite/1-workers-4                 21.50Ki ±   0%   21.50Ki ±  0%        ~ (p=0.685 n=7)
Update/dqlite/4-workers-4                 21.50Ki ±   0%   21.47Ki ±  0%   -0.15% (p=0.001 n=7)
Update/dqlite/16-workers-4                21.66Ki ±   1%   21.47Ki ±  0%   -0.85% (p=0.001 n=7)
Update/dqlite/64-workers-4                21.93Ki ±   3%   21.42Ki ±  0%   -2.32% (p=0.001 n=7)
Update/dqlite/128-workers-4               22.77Ki ±   6%   21.35Ki ±  0%   -6.20% (p=0.001 n=7)
geomean                                   14.54Ki          14.39Ki         -1.01%

                                        │    Before    │                After                 │
                                        │  allocs/op   │  allocs/op   vs base                 │
Compaction/sqlite-4                       50.00 ±  10%   50.00 ± 42%        ~ (p=0.588 n=7)
Compaction/dqlite-4                       151.0 ±  93%   117.0 ± 28%        ~ (p=0.247 n=7)
Create/sqlite/1-workers-4                 399.0 ±   0%   399.0 ±  0%        ~ (p=1.000 n=7) ¹
Create/sqlite/4-workers-4                 399.0 ±   0%   399.0 ±  0%        ~ (p=1.000 n=7) ¹
Create/sqlite/16-workers-4                399.0 ±   0%   399.0 ±  0%        ~ (p=1.000 n=7) ¹
Create/sqlite/64-workers-4                399.0 ±   0%   399.0 ±  4%        ~ (p=0.204 n=7)
Create/sqlite/128-workers-4               401.0 ±   0%   400.0 ±  0%        ~ (p=0.362 n=7)
Create/dqlite/1-workers-4                 369.0 ±   0%   369.0 ±  0%        ~ (p=1.000 n=7)
Create/dqlite/4-workers-4                 369.0 ±   0%   368.0 ±  0%        ~ (p=0.592 n=7)
Create/dqlite/16-workers-4                369.0 ±   0%   369.0 ±  0%        ~ (p=1.000 n=7)
Create/dqlite/64-workers-4                368.0 ±   0%   368.0 ±  0%        ~ (p=1.000 n=7) ¹
Create/dqlite/128-workers-4               368.0 ±   0%   368.0 ±  0%        ~ (p=1.000 n=7) ¹
Delete/sqlite/1-workers-4                 431.0 ±   0%   431.0 ±  0%        ~ (p=1.000 n=7) ¹
Delete/sqlite/4-workers-4                 431.0 ±   0%   431.0 ±  0%        ~ (p=1.000 n=7) ¹
Delete/sqlite/16-workers-4                430.0 ±   0%   431.0 ±  0%        ~ (p=0.286 n=7)
Delete/sqlite/64-workers-4                430.0 ±   0%   430.0 ±  0%        ~ (p=0.449 n=7)
Delete/sqlite/128-workers-4               432.0 ±   5%   432.0 ±  0%        ~ (p=0.825 n=7)
Delete/dqlite/1-workers-4                 399.0 ±   0%   399.0 ±  0%        ~ (p=1.000 n=7) ¹
Delete/dqlite/4-workers-4                 399.0 ±   0%   399.0 ±  0%        ~ (p=1.000 n=7) ¹
Delete/dqlite/16-workers-4                399.0 ±   0%   399.0 ±  0%        ~ (p=1.000 n=7) ¹
Delete/dqlite/64-workers-4                399.0 ±   0%   399.0 ± 13%        ~ (p=1.000 n=7)
Delete/dqlite/128-workers-4               399.0 ±   0%   399.0 ±  0%        ~ (p=1.000 n=7)
Get/sqlite-4                              445.0 ±   0%   446.0 ±  0%   +0.22% (p=0.001 n=7)
Get/dqlite-4                              412.0 ±   0%   413.0 ±  0%   +0.24% (p=0.001 n=7)
List/sqlite-tiny/all-4                    17.00 ±  18%   18.00 ± 33%        ~ (p=0.242 n=7)
List/sqlite-tiny/pagination-4             25.00 ±   0%   29.00 ±  7%  +16.00% (p=0.001 n=7)
List/sqlite-fits-in-page/all-4            22.00 ±  18%   22.00 ± 14%        ~ (p=0.639 n=7)
List/sqlite-fits-in-page/pagination-4     38.00 ±  16%   40.00 ±  5%        ~ (p=0.248 n=7)
List/sqlite-overflows-page/all-4          9.000 ±   0%   9.000 ±  0%        ~ (p=1.000 n=7) ¹
List/sqlite-overflows-page/pagination-4   22.00 ±  23%   16.00 ± 81%  -27.27% (p=0.046 n=7)
List/dqlite-tiny/all-4                    14.00 ±   7%   14.00 ±  7%        ~ (p=0.700 n=7)
List/dqlite-tiny/pagination-4             14.00 ±   7%   13.00 ±  0%   -7.14% (p=0.005 n=7)
List/dqlite-fits-in-page/all-4            19.00 ±   5%   20.00 ±  5%        ~ (p=0.592 n=7)
List/dqlite-fits-in-page/pagination-4     20.00 ±   5%   18.00 ± 17%        ~ (p=0.082 n=7)
List/dqlite-overflows-page/all-4          33.00 ±   3%   34.00 ±  3%        ~ (p=0.409 n=7)
List/dqlite-overflows-page/pagination-4   33.00 ±   9%   35.00 ± 23%        ~ (p=0.105 n=7)
Update/sqlite/1-workers-4                 412.0 ±   0%   412.0 ±  0%        ~ (p=1.000 n=7) ¹
Update/sqlite/4-workers-4                 412.0 ±   0%   412.0 ±  0%        ~ (p=1.000 n=7) ¹
Update/sqlite/16-workers-4                413.0 ±   0%   411.0 ±  0%   -0.48% (p=0.001 n=7)
Update/sqlite/64-workers-4                419.0 ±  40%   411.0 ±  0%   -1.91% (p=0.001 n=7)
Update/sqlite/128-workers-4               440.0 ± 696%   413.0 ±  0%   -6.14% (p=0.001 n=7)
Update/dqlite/1-workers-4                 381.0 ±   0%   381.0 ±  0%        ~ (p=1.000 n=7) ¹
Update/dqlite/4-workers-4                 382.0 ±   0%   381.0 ±  0%        ~ (p=0.070 n=7)
Update/dqlite/16-workers-4                384.0 ±   1%   381.0 ±  0%   -0.78% (p=0.005 n=7)
Update/dqlite/64-workers-4                388.0 ±   3%   380.0 ±  0%   -2.06% (p=0.001 n=7)
Update/dqlite/128-workers-4               403.0 ±   6%   379.0 ±  0%   -5.96% (p=0.001 n=7)
geomean                                   173.1          171.1         -1.16%
¹ all samples are equal

                                        │        Before         │                    After                    │
                                        │ network-bytes-read/op │ network-bytes-read/op  vs base              │
Compaction/dqlite-4                               2.276Ki ± 93%           1.768Ki ± 28%       ~ (p=0.259 n=7)
Create/dqlite/1-workers-4                           240.6 ±  0%             240.4 ±  0%       ~ (p=0.129 n=7)
Create/dqlite/4-workers-4                           241.6 ±  0%             241.3 ±  0%       ~ (p=0.219 n=7)
Create/dqlite/16-workers-4                          241.7 ±  0%             241.6 ±  0%       ~ (p=0.987 n=7)
Create/dqlite/64-workers-4                          241.7 ±  0%             241.5 ±  0%       ~ (p=0.467 n=7)
Create/dqlite/128-workers-4                         241.5 ±  0%             242.0 ±  0%  +0.21% (p=0.021 n=7)
Delete/dqlite/1-workers-4                           716.8 ±  0%             717.4 ±  0%       ~ (p=0.152 n=7)
Delete/dqlite/4-workers-4                           718.5 ±  0%             718.3 ±  0%       ~ (p=0.876 n=7)
Delete/dqlite/16-workers-4                          718.5 ±  0%             718.7 ±  0%       ~ (p=0.101 n=7)
Delete/dqlite/64-workers-4                          718.0 ±  0%             718.8 ± 12%       ~ (p=0.104 n=7)
Delete/dqlite/128-workers-4                         718.1 ±  0%             718.4 ±  0%       ~ (p=0.512 n=7)
Get/dqlite-4                                      1.132Ki ±  0%           1.133Ki ±  0%  +0.09% (p=0.041 n=7)
List/dqlite-tiny/all-4                              209.4 ±  9%             210.9 ± 13%       ~ (p=0.318 n=7)
List/dqlite-tiny/pagination-4                       198.0 ±  3%             188.6 ±  4%  -4.75% (p=0.002 n=7)
List/dqlite-fits-in-page/all-4                    1.339Ki ±  2%           1.358Ki ±  5%       ~ (p=0.272 n=7)
List/dqlite-fits-in-page/pagination-4             1.378Ki ±  7%           1.216Ki ± 22%       ~ (p=0.259 n=7)
List/dqlite-overflows-page/all-4                  6.992Ki ±  1%           7.052Ki ±  3%       ~ (p=0.535 n=7)
List/dqlite-overflows-page/pagination-4           6.953Ki ± 10%           7.329Ki ± 23%       ~ (p=0.165 n=7)
Update/dqlite/1-workers-4                           262.7 ±  0%             262.7 ±  0%       ~ (p=0.988 n=7)
Update/dqlite/4-workers-4                           263.2 ±  0%             263.0 ±  0%       ~ (p=0.171 n=7)
Update/dqlite/16-workers-4                          264.4 ±  1%             262.8 ±  0%  -0.61% (p=0.013 n=7)
Update/dqlite/64-workers-4                          267.6 ±  3%             262.1 ±  0%  -2.06% (p=0.001 n=7)
Update/dqlite/128-workers-4                         277.5 ±  6%             261.3 ±  0%  -5.84% (p=0.001 n=7)
geomean                                             569.2                   558.6        -1.85%

                                        │          Before          │                      After                      │
                                        │ network-bytes-written/op │ network-bytes-written/op  vs base               │
Compaction/dqlite-4                                    4.724 ± 18%                4.488 ±  5%   -5.00% (p=0.041 n=7)
Create/dqlite/1-workers-4                              114.7 ±  1%                114.0 ±  1%        ~ (p=0.052 n=7)
Create/dqlite/4-workers-4                              116.3 ±  1%                115.3 ±  1%   -0.86% (p=0.015 n=7)
Create/dqlite/16-workers-4                             116.5 ±  2%                115.8 ±  1%        ~ (p=0.259 n=7)
Create/dqlite/64-workers-4                             116.2 ±  1%                115.7 ±  1%   -0.43% (p=0.036 n=7)
Create/dqlite/128-workers-4                            116.0 ±  1%                116.7 ±  1%        ~ (p=0.361 n=7)
Delete/dqlite/1-workers-4                              82.07 ±  0%                82.12 ±  1%        ~ (p=0.456 n=7)
Delete/dqlite/4-workers-4                              82.76 ±  1%                82.52 ±  1%        ~ (p=0.929 n=7)
Delete/dqlite/16-workers-4                             82.55 ±  1%                82.87 ±  1%        ~ (p=0.053 n=7)
Delete/dqlite/64-workers-4                             82.54 ±  1%                82.72 ± 34%        ~ (p=0.128 n=7)
Delete/dqlite/128-workers-4                            82.54 ±  0%                82.74 ±  1%        ~ (p=0.535 n=7)
Get/dqlite-4                                           80.52 ±  0%                88.51 ±  0%   +9.92% (p=0.001 n=7)
List/dqlite-tiny/all-4                               0.04571 ± 17%              0.04610 ± 23%        ~ (p=0.196 n=7)
List/dqlite-tiny/pagination-4                        0.04923 ±  9%              0.04468 ±  5%   -9.24% (p=0.001 n=7)
List/dqlite-fits-in-page/all-4                       0.06051 ±  4%              0.06233 ±  7%        ~ (p=0.209 n=7)
List/dqlite-fits-in-page/pagination-4                0.09083 ± 13%              0.07570 ± 20%  -16.66% (p=0.017 n=7)
List/dqlite-overflows-page/all-4                     0.07844 ±  2%              0.08105 ±  6%        ~ (p=0.128 n=7)
List/dqlite-overflows-page/pagination-4               0.1177 ± 22%               0.1374 ± 11%  +16.74% (p=0.038 n=7)
Update/dqlite/1-workers-4                              136.6 ±  0%                136.5 ±  0%        ~ (p=0.544 n=7)
Update/dqlite/4-workers-4                              136.6 ±  0%                136.4 ±  0%   -0.15% (p=0.047 n=7)
Update/dqlite/16-workers-4                             137.4 ±  1%                136.4 ±  0%   -0.73% (p=0.006 n=7)
Update/dqlite/64-workers-4                             139.9 ±  2%                136.1 ±  0%   -2.72% (p=0.001 n=7)
Update/dqlite/128-workers-4                            144.6 ±  5%                135.8 ±  0%   -6.09% (p=0.001 n=7)
geomean                                                13.85                      13.78         -0.53%
Current status
goos: linux
goarch: amd64
pkg: github.com/canonical/k8s-dqlite/test
cpu: AMD EPYC 7763 64-Core Processor                
                                        │     After      │
                                        │     sec/op     │
Compaction/sqlite-4                       20.91µ ±    8%
Compaction/dqlite-4                       44.13µ ±    6%
Create/sqlite/1-workers-4                 536.5µ ±    6%
Create/sqlite/4-workers-4                 525.6µ ±   10%
Create/sqlite/16-workers-4                462.6µ ±   16%
Create/sqlite/64-workers-4                519.0µ ± 2113%
Create/sqlite/128-workers-4               691.2µ ±   15%
Create/dqlite/1-workers-4                 1.175m ±    3%
Create/dqlite/4-workers-4                 1.023m ±    6%
Create/dqlite/16-workers-4                1.011m ±    5%
Create/dqlite/64-workers-4                998.6µ ±    8%
Create/dqlite/128-workers-4               955.5µ ±    9%
Delete/sqlite/1-workers-4                 530.5µ ±    3%
Delete/sqlite/4-workers-4                 485.6µ ±    7%
Delete/sqlite/16-workers-4                470.8µ ±   11%
Delete/sqlite/64-workers-4                511.5µ ±   23%
Delete/sqlite/128-workers-4               877.8µ ±   34%
Delete/dqlite/1-workers-4                 1.135m ±    1%
Delete/dqlite/4-workers-4                 993.9µ ±    4%
Delete/dqlite/16-workers-4                1.010m ±   10%
Delete/dqlite/64-workers-4                985.5µ ±    4%
Delete/dqlite/128-workers-4               984.2µ ±    4%
Get/sqlite-4                              241.9µ ±    1%
Get/dqlite-4                              347.7µ ±    1%
List/sqlite-tiny/all-4                    4.203µ ±    9%
List/sqlite-tiny/pagination-4             8.749µ ±    3%
List/sqlite-fits-in-page/all-4            8.142µ ±    5%
List/sqlite-fits-in-page/pagination-4     23.21µ ±    3%
List/sqlite-overflows-page/all-4          17.45µ ±    5%
List/sqlite-overflows-page/pagination-4   43.85µ ±    9%
List/dqlite-tiny/all-4                    3.032µ ±    9%
List/dqlite-tiny/pagination-4             6.043µ ±    2%
List/dqlite-fits-in-page/all-4            6.893µ ±    4%
List/dqlite-fits-in-page/pagination-4     17.57µ ±    4%
List/dqlite-overflows-page/all-4          22.01µ ±    5%
List/dqlite-overflows-page/pagination-4   46.30µ ±    6%
Update/sqlite/1-workers-4                 538.1µ ±    6%
Update/sqlite/4-workers-4                 522.1µ ±    9%
Update/sqlite/16-workers-4                478.2µ ±    5%
Update/sqlite/64-workers-4                579.9µ ±   82%
Update/sqlite/128-workers-4               973.3µ ±  136%
Update/dqlite/1-workers-4                 1.167m ±    6%
Update/dqlite/4-workers-4                 1.031m ±    3%
Update/dqlite/16-workers-4                995.4µ ±   11%
Update/dqlite/64-workers-4                1.011m ±    6%
Update/dqlite/128-workers-4               1.028m ±    4%
geomean                                   216.8µ

                                        │        After         │
                                        │ page-cache-misses/op │
Compaction/sqlite-4                               0.000 ± 0%
Compaction/dqlite-4                               0.000 ± 0%
Create/sqlite/1-workers-4                         0.000 ± 0%
Create/sqlite/4-workers-4                         0.000 ± 0%
Create/sqlite/16-workers-4                        0.000 ± 0%
Create/sqlite/64-workers-4                        0.000 ± 0%
Create/sqlite/128-workers-4                       0.000 ± 0%
Create/dqlite/1-workers-4                         0.000 ± 0%
Create/dqlite/4-workers-4                         0.000 ± 0%
Create/dqlite/16-workers-4                        0.000 ± 0%
Create/dqlite/64-workers-4                        0.000 ± 0%
Create/dqlite/128-workers-4                       0.000 ± 0%
Delete/sqlite/1-workers-4                         0.000 ± 0%
Delete/sqlite/4-workers-4                         0.000 ± 0%
Delete/sqlite/16-workers-4                        0.000 ± 0%
Delete/sqlite/64-workers-4                        0.000 ± 0%
Delete/sqlite/128-workers-4                       0.000 ± 0%
Delete/dqlite/1-workers-4                         0.000 ± 0%
Delete/dqlite/4-workers-4                         0.000 ± 0%
Delete/dqlite/16-workers-4                        0.000 ± 0%
Delete/dqlite/64-workers-4                        0.000 ± 0%
Delete/dqlite/128-workers-4                       0.000 ± 0%
Get/sqlite-4                                      0.000 ± 0%
Get/dqlite-4                                      0.000 ± 0%
List/sqlite-tiny/all-4                            0.000 ± 0%
List/sqlite-tiny/pagination-4                     0.000 ± 0%
List/sqlite-fits-in-page/all-4                    0.000 ± 0%
List/sqlite-fits-in-page/pagination-4             0.000 ± 0%
List/sqlite-overflows-page/all-4                  0.000 ± 0%
List/sqlite-overflows-page/pagination-4           0.000 ± 0%
List/dqlite-tiny/all-4                            0.000 ± 0%
List/dqlite-tiny/pagination-4                     0.000 ± 0%
List/dqlite-fits-in-page/all-4                    0.000 ± 0%
List/dqlite-fits-in-page/pagination-4             0.000 ± 0%
List/dqlite-overflows-page/all-4                  0.000 ± 0%
List/dqlite-overflows-page/pagination-4           0.000 ± 0%
Update/sqlite/1-workers-4                         0.000 ± 0%
Update/sqlite/4-workers-4                         0.000 ± 0%
Update/sqlite/16-workers-4                        0.000 ± 0%
Update/sqlite/64-workers-4                        0.000 ± 0%
Update/sqlite/128-workers-4                       0.000 ± 0%
Update/dqlite/1-workers-4                         0.000 ± 0%
Update/dqlite/4-workers-4                         0.000 ± 0%
Update/dqlite/16-workers-4                        0.000 ± 0%
Update/dqlite/64-workers-4                        0.000 ± 0%
Update/dqlite/128-workers-4                       0.000 ± 0%
geomean                                                      ¹
¹ summaries must be >0 to compute geomean

                                        │        After         │
                                        │ page-cache-spills/op │
Compaction/sqlite-4                               0.000 ± 0%
Compaction/dqlite-4                               0.000 ± 0%
Create/sqlite/1-workers-4                         0.000 ± 0%
Create/sqlite/4-workers-4                         0.000 ± 0%
Create/sqlite/16-workers-4                        0.000 ± 0%
Create/sqlite/64-workers-4                        0.000 ± 0%
Create/sqlite/128-workers-4                       0.000 ± 0%
Create/dqlite/1-workers-4                         0.000 ± 0%
Create/dqlite/4-workers-4                         0.000 ± 0%
Create/dqlite/16-workers-4                        0.000 ± 0%
Create/dqlite/64-workers-4                        0.000 ± 0%
Create/dqlite/128-workers-4                       0.000 ± 0%
Delete/sqlite/1-workers-4                         0.000 ± 0%
Delete/sqlite/4-workers-4                         0.000 ± 0%
Delete/sqlite/16-workers-4                        0.000 ± 0%
Delete/sqlite/64-workers-4                        0.000 ± 0%
Delete/sqlite/128-workers-4                       0.000 ± 0%
Delete/dqlite/1-workers-4                         0.000 ± 0%
Delete/dqlite/4-workers-4                         0.000 ± 0%
Delete/dqlite/16-workers-4                        0.000 ± 0%
Delete/dqlite/64-workers-4                        0.000 ± 0%
Delete/dqlite/128-workers-4                       0.000 ± 0%
Get/sqlite-4                                      0.000 ± 0%
Get/dqlite-4                                      0.000 ± 0%
List/sqlite-tiny/all-4                            0.000 ± 0%
List/sqlite-tiny/pagination-4                     0.000 ± 0%
List/sqlite-fits-in-page/all-4                    0.000 ± 0%
List/sqlite-fits-in-page/pagination-4             0.000 ± 0%
List/sqlite-overflows-page/all-4                  0.000 ± 0%
List/sqlite-overflows-page/pagination-4           0.000 ± 0%
List/dqlite-tiny/all-4                            0.000 ± 0%
List/dqlite-tiny/pagination-4                     0.000 ± 0%
List/dqlite-fits-in-page/all-4                    0.000 ± 0%
List/dqlite-fits-in-page/pagination-4             0.000 ± 0%
List/dqlite-overflows-page/all-4                  0.000 ± 0%
List/dqlite-overflows-page/pagination-4           0.000 ± 0%
Update/sqlite/1-workers-4                         0.000 ± 0%
Update/sqlite/4-workers-4                         0.000 ± 0%
Update/sqlite/16-workers-4                        0.000 ± 0%
Update/sqlite/64-workers-4                        0.000 ± 0%
Update/sqlite/128-workers-4                       0.000 ± 0%
Update/dqlite/1-workers-4                         0.000 ± 0%
Update/dqlite/4-workers-4                         0.000 ± 0%
Update/dqlite/16-workers-4                        0.000 ± 0%
Update/dqlite/64-workers-4                        0.000 ± 0%
Update/dqlite/128-workers-4                       0.000 ± 0%
geomean                                                      ¹
¹ summaries must be >0 to compute geomean

                                        │     After     │
                                        │ page-reads/op │
Compaction/sqlite-4                         12.27 ±  1%
Compaction/dqlite-4                         12.32 ±  2%
Create/sqlite/1-workers-4                   13.84 ±  0%
Create/sqlite/4-workers-4                   12.57 ±  2%
Create/sqlite/16-workers-4                  10.68 ±  2%
Create/sqlite/64-workers-4                  9.040 ± 50%
Create/sqlite/128-workers-4                 8.466 ±  3%
Create/dqlite/1-workers-4                   13.39 ±  1%
Create/dqlite/4-workers-4                   10.99 ±  1%
Create/dqlite/16-workers-4                  11.12 ±  1%
Create/dqlite/64-workers-4                  11.09 ±  2%
Create/dqlite/128-workers-4                 11.14 ±  2%
Delete/sqlite/1-workers-4                   16.24 ±  0%
Delete/sqlite/4-workers-4                   14.42 ±  3%
Delete/sqlite/16-workers-4                  12.16 ± 11%
Delete/sqlite/64-workers-4                  10.34 ±  3%
Delete/sqlite/128-workers-4                 9.609 ±  3%
Delete/dqlite/1-workers-4                   15.88 ±  2%
Delete/dqlite/4-workers-4                   13.55 ±  1%
Delete/dqlite/16-workers-4                  13.56 ±  1%
Delete/dqlite/64-workers-4                  13.50 ±  3%
Delete/dqlite/128-workers-4                 13.39 ±  1%
Get/sqlite-4                                14.96 ±  0%
Get/dqlite-4                                11.97 ±  0%
List/sqlite-tiny/all-4                     192.6m ±  2%
List/sqlite-tiny/pagination-4               1.133 ±  0%
List/sqlite-fits-in-page/all-4             164.8m ±  1%
List/sqlite-fits-in-page/pagination-4      965.1m ±  3%
List/sqlite-overflows-page/all-4           177.2m ±  0%
List/sqlite-overflows-page/pagination-4     1.459 ± 42%
List/dqlite-tiny/all-4                     191.5m ±  1%
List/dqlite-tiny/pagination-4               1.125 ±  3%
List/dqlite-fits-in-page/all-4             164.1m ±  0%
List/dqlite-fits-in-page/pagination-4      953.7m ±  3%
List/dqlite-overflows-page/all-4           184.0m ±  0%
List/dqlite-overflows-page/pagination-4     1.072 ±  3%
Update/sqlite/1-workers-4                   15.77 ±  0%
Update/sqlite/4-workers-4                   14.49 ±  2%
Update/sqlite/16-workers-4                  12.89 ±  4%
Update/sqlite/64-workers-4                  11.13 ±  2%
Update/sqlite/128-workers-4                 10.13 ± 15%
Update/dqlite/1-workers-4                   15.50 ±  1%
Update/dqlite/4-workers-4                   12.96 ±  1%
Update/dqlite/16-workers-4                  12.96 ±  1%
Update/dqlite/64-workers-4                  12.88 ±  1%
Update/dqlite/128-workers-4                 12.80 ±  1%
geomean                                     5.215

                                        │     After      │
                                        │ page-writes/op │
Compaction/sqlite-4                        190.3m ± 0%
Compaction/dqlite-4                        187.9m ± 0%
Create/sqlite/1-workers-4                   4.352 ± 0%
Create/sqlite/4-workers-4                   4.297 ± 1%
Create/sqlite/16-workers-4                  4.279 ± 1%
Create/sqlite/64-workers-4                  4.226 ± 5%
Create/sqlite/128-workers-4                 4.223 ± 1%
Create/dqlite/1-workers-4                   4.198 ± 1%
Create/dqlite/4-workers-4                   4.261 ± 1%
Create/dqlite/16-workers-4                  4.283 ± 1%
Create/dqlite/64-workers-4                  4.280 ± 1%
Create/dqlite/128-workers-4                 4.293 ± 1%
Delete/sqlite/1-workers-4                   4.387 ± 0%
Delete/sqlite/4-workers-4                   4.363 ± 1%
Delete/sqlite/16-workers-4                  4.377 ± 1%
Delete/sqlite/64-workers-4                  4.371 ± 1%
Delete/sqlite/128-workers-4                 4.332 ± 1%
Delete/dqlite/1-workers-4                   4.373 ± 1%
Delete/dqlite/4-workers-4                   4.378 ± 1%
Delete/dqlite/16-workers-4                  4.364 ± 0%
Delete/dqlite/64-workers-4                  4.363 ± 1%
Delete/dqlite/128-workers-4                 4.343 ± 0%
Get/sqlite-4                                0.000 ± 0%
Get/dqlite-4                                0.000 ± 0%
List/sqlite-tiny/all-4                      0.000 ± 0%
List/sqlite-tiny/pagination-4               0.000 ± 0%
List/sqlite-fits-in-page/all-4              0.000 ± 0%
List/sqlite-fits-in-page/pagination-4       0.000 ± 0%
List/sqlite-overflows-page/all-4            0.000 ± 0%
List/sqlite-overflows-page/pagination-4     0.000 ± 0%
List/dqlite-tiny/all-4                      0.000 ± 0%
List/dqlite-tiny/pagination-4               0.000 ± 0%
List/dqlite-fits-in-page/all-4              0.000 ± 0%
List/dqlite-fits-in-page/pagination-4       0.000 ± 0%
List/dqlite-overflows-page/all-4            0.000 ± 0%
List/dqlite-overflows-page/pagination-4     0.000 ± 0%
Update/sqlite/1-workers-4                   4.239 ± 0%
Update/sqlite/4-workers-4                   4.292 ± 1%
Update/sqlite/16-workers-4                  4.304 ± 1%
Update/sqlite/64-workers-4                  4.274 ± 1%
Update/sqlite/128-workers-4                 4.249 ± 4%
Update/dqlite/1-workers-4                   4.209 ± 0%
Update/dqlite/4-workers-4                   4.201 ± 0%
Update/dqlite/16-workers-4                  4.221 ± 0%
Update/dqlite/64-workers-4                  4.233 ± 1%
Update/dqlite/128-workers-4                 4.238 ± 1%
geomean                                                ¹
¹ summaries must be >0 to compute geomean

                                        │     After      │
                                        │ sec-reading/op │
Compaction/sqlite-4                        28.70µ ±  33%
Compaction/dqlite-4                        28.40µ ±  28%
Create/sqlite/1-workers-4                  21.60µ ±  25%
Create/sqlite/4-workers-4                  20.40µ ±  29%
Create/sqlite/16-workers-4                 23.60µ ±  16%
Create/sqlite/64-workers-4                 25.20µ ± 138%
Create/sqlite/128-workers-4                24.50µ ±  61%
Create/dqlite/1-workers-4                  12.00µ ±  42%
Create/dqlite/4-workers-4                  11.90µ ±  32%
Create/dqlite/16-workers-4                 10.00µ ±  58%
Create/dqlite/64-workers-4                 12.00µ ±  26%
Create/dqlite/128-workers-4                9.800µ ±  53%
Delete/sqlite/1-workers-4                  32.80µ ±  22%
Delete/sqlite/4-workers-4                  33.30µ ±  12%
Delete/sqlite/16-workers-4                 34.40µ ±  22%
Delete/sqlite/64-workers-4                 36.70µ ±  26%
Delete/sqlite/128-workers-4                33.30µ ±  47%
Delete/dqlite/1-workers-4                  14.50µ ±  43%
Delete/dqlite/4-workers-4                  16.00µ ±  28%
Delete/dqlite/16-workers-4                 17.90µ ±  38%
Delete/dqlite/64-workers-4                 17.60µ ±  36%
Delete/dqlite/128-workers-4                17.60µ ±  31%
Get/sqlite-4                               64.90µ ±   3%
Get/dqlite-4                               34.40µ ±  11%
List/sqlite-tiny/all-4                     7.900µ ±  33%
List/sqlite-tiny/pagination-4              16.80µ ±   7%
List/sqlite-fits-in-page/all-4             14.80µ ±  16%
List/sqlite-fits-in-page/pagination-4      39.20µ ±   3%
List/sqlite-overflows-page/all-4           13.40µ ±   4%
List/sqlite-overflows-page/pagination-4    46.10µ ±  36%
List/dqlite-tiny/all-4                     4.200µ ±  21%
List/dqlite-tiny/pagination-4              8.300µ ±   8%
List/dqlite-fits-in-page/all-4             11.00µ ±  19%
List/dqlite-fits-in-page/pagination-4      23.60µ ±  32%
List/dqlite-overflows-page/all-4           35.70µ ±  13%
List/dqlite-overflows-page/pagination-4    69.50µ ±  19%
Update/sqlite/1-workers-4                  18.00µ ±  33%
Update/sqlite/4-workers-4                  18.50µ ±  45%
Update/sqlite/16-workers-4                 21.40µ ±  13%
Update/sqlite/64-workers-4                 22.80µ ±  19%
Update/sqlite/128-workers-4                25.00µ ±  29%
Update/dqlite/1-workers-4                  12.50µ ±  38%
Update/dqlite/4-workers-4                  11.30µ ±  58%
Update/dqlite/16-workers-4                 11.00µ ±  29%
Update/dqlite/64-workers-4                 10.50µ ±  42%
Update/dqlite/128-workers-4                13.00µ ±  63%
geomean                                    19.20µ

                                        │      After      │
                                        │ sec-writing/op  │
Compaction/sqlite-4                       9.500µ ±  24%
Compaction/dqlite-4                       7.400µ ±   7%
Create/sqlite/1-workers-4                 300.6µ ±  10%
Create/sqlite/4-workers-4                 1.617m ±  19%
Create/sqlite/16-workers-4                5.683m ±  17%
Create/sqlite/64-workers-4                20.37m ± 359%
Create/sqlite/128-workers-4               38.50m ±  12%
Create/dqlite/1-workers-4                 46.90µ ±  25%
Create/dqlite/4-workers-4                 47.00µ ±  26%
Create/dqlite/16-workers-4                43.50µ ±  20%
Create/dqlite/64-workers-4                44.30µ ±  21%
Create/dqlite/128-workers-4               47.20µ ±  15%
Delete/sqlite/1-workers-4                 308.4µ ±  11%
Delete/sqlite/4-workers-4                 1.515m ±   8%
Delete/sqlite/16-workers-4                5.484m ±   6%
Delete/sqlite/64-workers-4                19.37m ±   7%
Delete/sqlite/128-workers-4               40.14m ±   9%
Delete/dqlite/1-workers-4                 37.70µ ±  25%
Delete/dqlite/4-workers-4                 50.10µ ±  23%
Delete/dqlite/16-workers-4                50.10µ ±  22%
Delete/dqlite/64-workers-4                46.70µ ±  19%
Delete/dqlite/128-workers-4               43.90µ ±  21%
Get/sqlite-4                               0.000 ±   0%
Get/dqlite-4                               0.000 ±   0%
List/sqlite-tiny/all-4                     0.000 ±   0%
List/sqlite-tiny/pagination-4              0.000 ±   0%
List/sqlite-fits-in-page/all-4             0.000 ±   0%
List/sqlite-fits-in-page/pagination-4      0.000 ±   0%
List/sqlite-overflows-page/all-4           0.000 ±   0%
List/sqlite-overflows-page/pagination-4    0.000 ±   0%
List/dqlite-tiny/all-4                     0.000 ±   0%
List/dqlite-tiny/pagination-4              0.000 ±   0%
List/dqlite-fits-in-page/all-4             0.000 ±   0%
List/dqlite-fits-in-page/pagination-4      0.000 ±   0%
List/dqlite-overflows-page/all-4           0.000 ±   0%
List/dqlite-overflows-page/pagination-4    0.000 ±   0%
Update/sqlite/1-workers-4                 302.9µ ±  13%
Update/sqlite/4-workers-4                 1.579m ±  14%
Update/sqlite/16-workers-4                5.632m ±   3%
Update/sqlite/64-workers-4                20.71m ±  13%
Update/sqlite/128-workers-4               44.93m ±  46%
Update/dqlite/1-workers-4                 35.00µ ±  46%
Update/dqlite/4-workers-4                 40.90µ ±  26%
Update/dqlite/16-workers-4                41.90µ ±  18%
Update/dqlite/64-workers-4                44.10µ ±  17%
Update/dqlite/128-workers-4               40.80µ ±  22%
geomean                                                 ¹
¹ summaries must be >0 to compute geomean

                                        │     After     │
                                        │     B/op      │
Compaction/sqlite-4                       2.354Ki ± 42%
Compaction/dqlite-4                       4.901Ki ± 28%
Create/sqlite/1-workers-4                 20.51Ki ±  0%
Create/sqlite/4-workers-4                 20.50Ki ±  0%
Create/sqlite/16-workers-4                20.48Ki ±  0%
Create/sqlite/64-workers-4                20.53Ki ± 11%
Create/sqlite/128-workers-4               20.65Ki ±  0%
Create/dqlite/1-workers-4                 19.76Ki ±  0%
Create/dqlite/4-workers-4                 19.73Ki ±  0%
Create/dqlite/16-workers-4                19.74Ki ±  0%
Create/dqlite/64-workers-4                19.75Ki ±  0%
Create/dqlite/128-workers-4               19.75Ki ±  0%
Delete/sqlite/1-workers-4                 22.94Ki ±  0%
Delete/sqlite/4-workers-4                 22.92Ki ±  0%
Delete/sqlite/16-workers-4                22.91Ki ±  0%
Delete/sqlite/64-workers-4                22.94Ki ±  0%
Delete/sqlite/128-workers-4               23.07Ki ±  0%
Delete/dqlite/1-workers-4                 22.03Ki ±  0%
Delete/dqlite/4-workers-4                 21.99Ki ±  0%
Delete/dqlite/16-workers-4                22.00Ki ±  0%
Delete/dqlite/64-workers-4                22.00Ki ± 10%
Delete/dqlite/128-workers-4               22.04Ki ±  0%
Get/sqlite-4                              24.50Ki ±  0%
Get/dqlite-4                              23.31Ki ±  0%
List/sqlite-tiny/all-4                    1.279Ki ± 20%
List/sqlite-tiny/pagination-4             1.766Ki ±  4%
List/sqlite-fits-in-page/all-4            7.700Ki ±  9%
List/sqlite-fits-in-page/pagination-4     10.86Ki ±  4%
List/sqlite-overflows-page/all-4          20.53Ki ± 12%
List/sqlite-overflows-page/pagination-4   26.84Ki ± 58%
List/dqlite-tiny/all-4                    1.049Ki ±  7%
List/dqlite-tiny/pagination-4               953.0 ±  4%
List/dqlite-fits-in-page/all-4            6.078Ki ±  9%
List/dqlite-fits-in-page/pagination-4     5.455Ki ± 14%
List/dqlite-overflows-page/all-4          30.38Ki ±  2%
List/dqlite-overflows-page/pagination-4   30.52Ki ± 14%
Update/sqlite/1-workers-4                 22.30Ki ±  0%
Update/sqlite/4-workers-4                 22.29Ki ±  0%
Update/sqlite/16-workers-4                22.28Ki ±  0%
Update/sqlite/64-workers-4                22.29Ki ±  0%
Update/sqlite/128-workers-4               22.34Ki ±  1%
Update/dqlite/1-workers-4                 21.50Ki ±  0%
Update/dqlite/4-workers-4                 21.47Ki ±  0%
Update/dqlite/16-workers-4                21.47Ki ±  0%
Update/dqlite/64-workers-4                21.42Ki ±  0%
Update/dqlite/128-workers-4               21.35Ki ±  0%
geomean                                   14.39Ki

                                        │    After    │
                                        │  allocs/op  │
Compaction/sqlite-4                       50.00 ± 42%
Compaction/dqlite-4                       117.0 ± 28%
Create/sqlite/1-workers-4                 399.0 ±  0%
Create/sqlite/4-workers-4                 399.0 ±  0%
Create/sqlite/16-workers-4                399.0 ±  0%
Create/sqlite/64-workers-4                399.0 ±  4%
Create/sqlite/128-workers-4               400.0 ±  0%
Create/dqlite/1-workers-4                 369.0 ±  0%
Create/dqlite/4-workers-4                 368.0 ±  0%
Create/dqlite/16-workers-4                369.0 ±  0%
Create/dqlite/64-workers-4                368.0 ±  0%
Create/dqlite/128-workers-4               368.0 ±  0%
Delete/sqlite/1-workers-4                 431.0 ±  0%
Delete/sqlite/4-workers-4                 431.0 ±  0%
Delete/sqlite/16-workers-4                431.0 ±  0%
Delete/sqlite/64-workers-4                430.0 ±  0%
Delete/sqlite/128-workers-4               432.0 ±  0%
Delete/dqlite/1-workers-4                 399.0 ±  0%
Delete/dqlite/4-workers-4                 399.0 ±  0%
Delete/dqlite/16-workers-4                399.0 ±  0%
Delete/dqlite/64-workers-4                399.0 ± 13%
Delete/dqlite/128-workers-4               399.0 ±  0%
Get/sqlite-4                              446.0 ±  0%
Get/dqlite-4                              413.0 ±  0%
List/sqlite-tiny/all-4                    18.00 ± 33%
List/sqlite-tiny/pagination-4             29.00 ±  7%
List/sqlite-fits-in-page/all-4            22.00 ± 14%
List/sqlite-fits-in-page/pagination-4     40.00 ±  5%
List/sqlite-overflows-page/all-4          9.000 ±  0%
List/sqlite-overflows-page/pagination-4   16.00 ± 81%
List/dqlite-tiny/all-4                    14.00 ±  7%
List/dqlite-tiny/pagination-4             13.00 ±  0%
List/dqlite-fits-in-page/all-4            20.00 ±  5%
List/dqlite-fits-in-page/pagination-4     18.00 ± 17%
List/dqlite-overflows-page/all-4          34.00 ±  3%
List/dqlite-overflows-page/pagination-4   35.00 ± 23%
Update/sqlite/1-workers-4                 412.0 ±  0%
Update/sqlite/4-workers-4                 412.0 ±  0%
Update/sqlite/16-workers-4                411.0 ±  0%
Update/sqlite/64-workers-4                411.0 ±  0%
Update/sqlite/128-workers-4               413.0 ±  0%
Update/dqlite/1-workers-4                 381.0 ±  0%
Update/dqlite/4-workers-4                 381.0 ±  0%
Update/dqlite/16-workers-4                381.0 ±  0%
Update/dqlite/64-workers-4                380.0 ±  0%
Update/dqlite/128-workers-4               379.0 ±  0%
geomean                                   171.1

                                        │         After         │
                                        │ network-bytes-read/op │
Compaction/dqlite-4                               1.768Ki ± 28%
Create/dqlite/1-workers-4                           240.4 ±  0%
Create/dqlite/4-workers-4                           241.3 ±  0%
Create/dqlite/16-workers-4                          241.6 ±  0%
Create/dqlite/64-workers-4                          241.5 ±  0%
Create/dqlite/128-workers-4                         242.0 ±  0%
Delete/dqlite/1-workers-4                           717.4 ±  0%
Delete/dqlite/4-workers-4                           718.3 ±  0%
Delete/dqlite/16-workers-4                          718.7 ±  0%
Delete/dqlite/64-workers-4                          718.8 ± 12%
Delete/dqlite/128-workers-4                         718.4 ±  0%
Get/dqlite-4                                      1.133Ki ±  0%
List/dqlite-tiny/all-4                              210.9 ± 13%
List/dqlite-tiny/pagination-4                       188.6 ±  4%
List/dqlite-fits-in-page/all-4                    1.358Ki ±  5%
List/dqlite-fits-in-page/pagination-4             1.216Ki ± 22%
List/dqlite-overflows-page/all-4                  7.052Ki ±  3%
List/dqlite-overflows-page/pagination-4           7.329Ki ± 23%
Update/dqlite/1-workers-4                           262.7 ±  0%
Update/dqlite/4-workers-4                           263.0 ±  0%
Update/dqlite/16-workers-4                          262.8 ±  0%
Update/dqlite/64-workers-4                          262.1 ±  0%
Update/dqlite/128-workers-4                         261.3 ±  0%
geomean                                             558.6

                                        │          After           │
                                        │ network-bytes-written/op │
Compaction/dqlite-4                                    4.488 ±  5%
Create/dqlite/1-workers-4                              114.0 ±  1%
Create/dqlite/4-workers-4                              115.3 ±  1%
Create/dqlite/16-workers-4                             115.8 ±  1%
Create/dqlite/64-workers-4                             115.7 ±  1%
Create/dqlite/128-workers-4                            116.7 ±  1%
Delete/dqlite/1-workers-4                              82.12 ±  1%
Delete/dqlite/4-workers-4                              82.52 ±  1%
Delete/dqlite/16-workers-4                             82.87 ±  1%
Delete/dqlite/64-workers-4                             82.72 ± 34%
Delete/dqlite/128-workers-4                            82.74 ±  1%
Get/dqlite-4                                           88.51 ±  0%
List/dqlite-tiny/all-4                               0.04610 ± 23%
List/dqlite-tiny/pagination-4                        0.04468 ±  5%
List/dqlite-fits-in-page/all-4                       0.06233 ±  7%
List/dqlite-fits-in-page/pagination-4                0.07570 ± 20%
List/dqlite-overflows-page/all-4                     0.08105 ±  6%
List/dqlite-overflows-page/pagination-4               0.1374 ± 11%
Update/dqlite/1-workers-4                              136.5 ±  0%
Update/dqlite/4-workers-4                              136.4 ±  0%
Update/dqlite/16-workers-4                             136.4 ±  0%
Update/dqlite/64-workers-4                             136.1 ±  0%
Update/dqlite/128-workers-4                            135.8 ±  0%
geomean                                                13.78

@marco6 marco6 force-pushed the marco6/simplify-list-query branch from c6736de to 5a05866 Compare October 28, 2024 14:36
@louiseschmidtgen louiseschmidtgen force-pushed the marco6/simplify-list-query branch from 3ad0959 to 039df3d Compare November 14, 2024 20:28
@louiseschmidtgen
Copy link
Contributor

Single Node

cpu_usage_plot
io_read_usage_plot
io_write_usage_plot
mem_usage_plot

Three Node

Three Node

CPU

cpu_usage_plot
cpu_usage_plot

IO reads

io_read_usage_plot
io_read_usage_plot

IO writes

io_write_usage_plot
io_write_usage_plot

Memory

mem_usage_plot
mem_usage_plot

Copy link
Contributor

@louiseschmidtgen louiseschmidtgen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fantastic work Marco, two questions about this PR:

pkg/kine/drivers/generic/generic.go Show resolved Hide resolved
pkg/kine/drivers/generic/generic.go Show resolved Hide resolved
Copy link
Contributor

@louiseschmidtgen louiseschmidtgen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@louiseschmidtgen louiseschmidtgen merged commit ed4b775 into master Nov 15, 2024
9 checks passed
@louiseschmidtgen louiseschmidtgen deleted the marco6/simplify-list-query branch November 15, 2024 11:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants