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

Improve queries after LogStructured removal #195

Merged
merged 2 commits into from
Nov 27, 2024

Conversation

marco6
Copy link
Collaborator

@marco6 marco6 commented Oct 29, 2024

This PR takes advantage from the reduced need of SQLLog after the merge LogStructured. This should result in a smoother startup and less data passed through the network.

@marco6
Copy link
Collaborator Author

marco6 commented Oct 29, 2024

Depends on #194

Copy link

github-actions bot commented Oct 29, 2024

Benchmark

Results
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.53µ ±   11%    20.25µ ±    5%        ~ (p=0.318 n=7)
Compaction/dqlite-4                        42.22µ ±    8%    43.58µ ±    7%        ~ (p=0.383 n=7)
Create/sqlite/1-workers-4                  492.0µ ±    6%    556.5µ ±    9%  +13.11% (p=0.001 n=7)
Create/sqlite/4-workers-4                  571.8µ ±   16%    503.6µ ±   11%        ~ (p=0.128 n=7)
Create/sqlite/16-workers-4                 429.8µ ±   12%    444.2µ ±    6%        ~ (p=0.902 n=7)
Create/sqlite/64-workers-4                 501.3µ ±   14%    503.3µ ±   28%        ~ (p=0.805 n=7)
Create/sqlite/128-workers-4                1.824m ±  188%    1.077m ±   89%        ~ (p=0.383 n=7)
Create/dqlite/1-workers-4                  1.227m ±   17%    1.111m ±   12%        ~ (p=0.710 n=7)
Create/dqlite/4-workers-4                  1.116m ±    7%    1.019m ±   17%        ~ (p=0.097 n=7)
Create/dqlite/16-workers-4                 993.9µ ±    5%   1195.0µ ±   11%  +20.24% (p=0.001 n=7)
Create/dqlite/64-workers-4                 984.3µ ±    4%   1002.4µ ±   18%        ~ (p=1.000 n=7)
Create/dqlite/128-workers-4                1.100m ±   10%    1.072m ±   16%        ~ (p=0.805 n=7)
Delete/sqlite/1-workers-4                  576.7µ ±   15%    497.1µ ±   16%  -13.80% (p=0.038 n=7)
Delete/sqlite/4-workers-4                  477.5µ ±   17%    560.6µ ±   17%  +17.39% (p=0.038 n=7)
Delete/sqlite/16-workers-4                 488.7µ ±   17%    536.6µ ±   21%        ~ (p=0.097 n=7)
Delete/sqlite/64-workers-4                 552.1µ ± 1114%   1576.6µ ±  826%        ~ (p=0.053 n=7)
Delete/sqlite/128-workers-4                669.6µ ±  172%   1192.1µ ±  880%        ~ (p=0.097 n=7)
Delete/dqlite/1-workers-4                  1.156m ±   13%    1.193m ±   16%        ~ (p=0.710 n=7)
Delete/dqlite/4-workers-4                  1.009m ±   11%    1.160m ±   19%        ~ (p=0.097 n=7)
Delete/dqlite/16-workers-4                 930.6µ ±    5%   1127.5µ ±   21%  +21.16% (p=0.007 n=7)
Delete/dqlite/64-workers-4                 983.9µ ±   13%    995.4µ ±   12%        ~ (p=0.456 n=7)
Delete/dqlite/128-workers-4                1.082m ±   13%    1.134m ±    9%        ~ (p=0.073 n=7)
Get/sqlite-4                               235.6µ ±    0%    229.4µ ±    2%   -2.61% (p=0.001 n=7)
Get/dqlite-4                               345.2µ ±    1%    343.3µ ±    2%        ~ (p=0.318 n=7)
List/sqlite-tiny/all-4                     3.952µ ±    7%    3.636µ ±    9%   -8.00% (p=0.001 n=7)
List/sqlite-tiny/pagination-4              8.762µ ±    2%    6.012µ ±    3%  -31.39% (p=0.001 n=7)
List/sqlite-fits-in-page/all-4             7.994µ ±    3%    6.885µ ±    5%  -13.87% (p=0.001 n=7)
List/sqlite-fits-in-page/pagination-4      23.03µ ±    4%    17.28µ ±    3%  -24.94% (p=0.001 n=7)
List/sqlite-overflows-page/all-4           18.14µ ±    8%    15.85µ ±    2%  -12.61% (p=0.001 n=7)
List/sqlite-overflows-page/pagination-4    42.46µ ±    2%    20.33µ ±    4%  -52.13% (p=0.001 n=7)
List/dqlite-tiny/all-4                     3.028µ ±   21%    2.487µ ±   10%  -17.87% (p=0.011 n=7)
List/dqlite-tiny/pagination-4              6.092µ ±    4%    4.685µ ±    3%  -23.10% (p=0.001 n=7)
List/dqlite-fits-in-page/all-4             6.947µ ±    6%    6.337µ ±    5%   -8.78% (p=0.001 n=7)
List/dqlite-fits-in-page/pagination-4      17.62µ ±    8%    13.28µ ±    4%  -24.65% (p=0.001 n=7)
List/dqlite-overflows-page/all-4           22.12µ ±    3%    21.02µ ±    3%   -5.01% (p=0.001 n=7)
List/dqlite-overflows-page/pagination-4    44.02µ ±    2%    25.43µ ±    3%  -42.23% (p=0.001 n=7)
Update/sqlite/1-workers-4                  482.7µ ±    8%    542.1µ ±   22%        ~ (p=0.128 n=7)
Update/sqlite/4-workers-4                  475.4µ ±   11%    604.3µ ±   11%  +27.12% (p=0.001 n=7)
Update/sqlite/16-workers-4                 467.0µ ±   13%    519.6µ ±   25%        ~ (p=0.209 n=7)
Update/sqlite/64-workers-4                 464.6µ ± 2399%    739.5µ ± 1467%        ~ (p=0.128 n=7)
Update/sqlite/128-workers-4                1.183m ±  256%    1.337m ±  241%        ~ (p=0.902 n=7)
Update/dqlite/1-workers-4                  1.242m ±   18%    1.221m ±   10%        ~ (p=0.620 n=7)
Update/dqlite/4-workers-4                 1193.1µ ±   30%    962.1µ ±    7%  -19.36% (p=0.001 n=7)
Update/dqlite/16-workers-4                1079.2µ ±    9%    946.3µ ±   13%  -12.31% (p=0.017 n=7)
Update/dqlite/64-workers-4                1097.8µ ±   10%    964.9µ ±   17%        ~ (p=0.073 n=7)
Update/dqlite/128-workers-4                975.9µ ±  170%    935.1µ ±   13%        ~ (p=0.209 n=7)
geomean                                    221.2µ            216.1µ           -2.27%

                                        │        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.25 ±  1%     12.24 ±  1%        ~ (p=0.645 n=7)
Compaction/dqlite-4                         12.23 ±  2%     12.19 ±  1%        ~ (p=0.740 n=7)
Create/sqlite/1-workers-4                   13.89 ±  0%     13.81 ±  1%   -0.58% (p=0.010 n=7)
Create/sqlite/4-workers-4                   12.76 ±  6%     12.76 ±  3%        ~ (p=0.734 n=7)
Create/sqlite/16-workers-4                  10.62 ±  9%     10.55 ±  9%        ~ (p=0.831 n=7)
Create/sqlite/64-workers-4                  9.073 ±  5%     9.087 ±  7%        ~ (p=1.000 n=7)
Create/sqlite/128-workers-4                 7.845 ± 34%     8.262 ±  8%        ~ (p=0.383 n=7)
Create/dqlite/1-workers-4                   13.08 ±  3%     13.24 ±  2%        ~ (p=0.731 n=7)
Create/dqlite/4-workers-4                   10.71 ±  3%     10.92 ±  2%   +1.96% (p=0.050 n=7)
Create/dqlite/16-workers-4                  10.84 ±  1%     10.95 ±  4%        ~ (p=0.401 n=7)
Create/dqlite/64-workers-4                  11.00 ±  1%     11.08 ±  2%        ~ (p=0.138 n=7)
Create/dqlite/128-workers-4                 10.83 ±  2%     11.08 ±  3%        ~ (p=0.090 n=7)
Delete/sqlite/1-workers-4                   16.23 ±  0%     16.22 ±  0%        ~ (p=0.246 n=7)
Delete/sqlite/4-workers-4                   14.74 ±  6%     15.09 ±  3%        ~ (p=0.073 n=7)
Delete/sqlite/16-workers-4                  12.40 ±  6%     12.51 ±  7%        ~ (p=0.645 n=7)
Delete/sqlite/64-workers-4                  10.20 ± 18%     10.14 ± 29%        ~ (p=0.929 n=7)
Delete/sqlite/128-workers-4                 9.555 ±  9%     9.586 ± 35%        ~ (p=0.710 n=7)
Delete/dqlite/1-workers-4                   15.64 ±  1%     15.65 ±  1%        ~ (p=0.445 n=7)
Delete/dqlite/4-workers-4                   13.45 ±  1%     13.52 ±  1%        ~ (p=0.366 n=7)
Delete/dqlite/16-workers-4                  13.58 ±  4%     13.47 ±  2%        ~ (p=0.513 n=7)
Delete/dqlite/64-workers-4                  13.43 ±  1%     13.37 ±  1%        ~ (p=0.133 n=7)
Delete/dqlite/128-workers-4                 13.35 ±  1%     13.34 ±  1%        ~ (p=0.445 n=7)
Get/sqlite-4                                14.97 ±  0%     14.96 ±  0%        ~ (p=0.869 n=7)
Get/dqlite-4                                11.97 ±  0%     11.96 ±  0%        ~ (p=0.353 n=7)
List/sqlite-tiny/all-4                     190.4m ±  1%    191.9m ±  1%        ~ (p=0.393 n=7)
List/sqlite-tiny/pagination-4               1.132 ±  3%     1.125 ±  3%   -0.62% (p=0.005 n=7)
List/sqlite-fits-in-page/all-4             164.4m ±  0%    163.9m ±  0%   -0.30% (p=0.006 n=7)
List/sqlite-fits-in-page/pagination-4      964.8m ±  0%    960.2m ±  3%   -0.48% (p=0.001 n=7)
List/sqlite-overflows-page/all-4           177.2m ± 25%    177.2m ±  0%        ~ (p=1.000 n=7)
List/sqlite-overflows-page/pagination-4     1.519 ± 28%     1.065 ±  3%  -29.89% (p=0.001 n=7)
List/dqlite-tiny/all-4                     191.6m ±  1%    190.8m ±  1%   -0.42% (p=0.019 n=7)
List/dqlite-tiny/pagination-4               1.125 ±  3%     1.126 ±  3%        ~ (p=0.735 n=7)
List/dqlite-fits-in-page/all-4             164.8m ±  0%    164.2m ±  0%   -0.36% (p=0.007 n=7)
List/dqlite-fits-in-page/pagination-4      955.2m ±  0%    954.3m ±  3%        ~ (p=0.365 n=7)
List/dqlite-overflows-page/all-4           184.6m ±  0%    184.4m ±  0%        ~ (p=0.089 n=7)
List/dqlite-overflows-page/pagination-4     1.072 ±  9%     1.093 ±  3%   +1.96% (p=0.030 n=7)
Update/sqlite/1-workers-4                   15.83 ±  0%     15.77 ±  1%        ~ (p=0.153 n=7)
Update/sqlite/4-workers-4                   14.54 ±  4%     15.09 ±  3%   +3.78% (p=0.011 n=7)
Update/sqlite/16-workers-4                  12.67 ±  4%     13.10 ±  9%        ~ (p=0.165 n=7)
Update/sqlite/64-workers-4                  10.67 ± 49%     10.99 ± 47%        ~ (p=0.435 n=7)
Update/sqlite/128-workers-4                 10.25 ± 43%     10.16 ± 43%        ~ (p=1.000 n=7)
Update/dqlite/1-workers-4                   15.33 ±  2%     15.10 ±  2%        ~ (p=0.165 n=7)
Update/dqlite/4-workers-4                   12.84 ±  1%     12.77 ±  1%        ~ (p=0.102 n=7)
Update/dqlite/16-workers-4                  12.94 ±  1%     12.77 ±  1%   -1.31% (p=0.007 n=7)
Update/dqlite/64-workers-4                  12.82 ±  1%     12.65 ±  3%   -1.33% (p=0.016 n=7)
Update/dqlite/128-workers-4                 12.77 ±  3%     12.68 ±  1%        ~ (p=0.640 n=7)
geomean                                     5.190           5.169         -0.41%

                                        │     Before     │                 After                  │
                                        │ page-writes/op │ page-writes/op  vs base                │
Compaction/sqlite-4                        190.8m ± 0%        190.8m ± 0%       ~ (p=0.686 n=7)
Compaction/dqlite-4                        187.6m ± 0%        187.6m ± 1%       ~ (p=0.509 n=7)
Create/sqlite/1-workers-4                   4.359 ± 0%         4.348 ± 0%  -0.25% (p=0.027 n=7)
Create/sqlite/4-workers-4                   4.318 ± 1%         4.307 ± 2%       ~ (p=0.557 n=7)
Create/sqlite/16-workers-4                  4.298 ± 1%         4.316 ± 1%       ~ (p=0.330 n=7)
Create/sqlite/64-workers-4                  4.258 ± 1%         4.254 ± 1%       ~ (p=0.805 n=7)
Create/sqlite/128-workers-4                 4.077 ± 3%         4.119 ± 2%       ~ (p=0.476 n=7)
Create/dqlite/1-workers-4                   4.135 ± 4%         4.228 ± 2%       ~ (p=0.555 n=7)
Create/dqlite/4-workers-4                   4.180 ± 1%         4.282 ± 3%  +2.44% (p=0.023 n=7)
Create/dqlite/16-workers-4                  4.243 ± 1%         4.185 ± 2%       ~ (p=0.154 n=7)
Create/dqlite/64-workers-4                  4.283 ± 1%         4.306 ± 3%       ~ (p=0.558 n=7)
Create/dqlite/128-workers-4                 4.190 ± 2%         4.280 ± 2%       ~ (p=0.097 n=7)
Delete/sqlite/1-workers-4                   4.391 ± 0%         4.385 ± 1%       ~ (p=0.367 n=7)
Delete/sqlite/4-workers-4                   4.374 ± 1%         4.399 ± 1%       ~ (p=0.594 n=7)
Delete/sqlite/16-workers-4                  4.366 ± 1%         4.383 ± 1%  +0.39% (p=0.043 n=7)
Delete/sqlite/64-workers-4                  4.344 ± 6%         4.281 ± 4%       ~ (p=0.105 n=7)
Delete/sqlite/128-workers-4                 4.335 ± 0%         4.293 ± 4%  -0.97% (p=0.048 n=7)
Delete/dqlite/1-workers-4                   4.347 ± 1%         4.347 ± 1%       ~ (p=0.929 n=7)
Delete/dqlite/4-workers-4                   4.363 ± 1%         4.365 ± 1%       ~ (p=0.805 n=7)
Delete/dqlite/16-workers-4                  4.374 ± 1%         4.372 ± 1%       ~ (p=0.620 n=7)
Delete/dqlite/64-workers-4                  4.358 ± 0%         4.344 ± 1%  -0.32% (p=0.008 n=7)
Delete/dqlite/128-workers-4                 4.327 ± 1%         4.364 ± 1%       ~ (p=0.456 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.236 ± 0%         4.233 ± 0%       ~ (p=0.217 n=7)
Update/sqlite/4-workers-4                   4.307 ± 1%         4.296 ± 1%       ~ (p=0.557 n=7)
Update/sqlite/16-workers-4                  4.302 ± 0%         4.319 ± 1%       ~ (p=0.245 n=7)
Update/sqlite/64-workers-4                  4.313 ± 7%         4.287 ± 7%       ~ (p=0.545 n=7)
Update/sqlite/128-workers-4                 4.219 ± 4%         4.206 ± 4%       ~ (p=0.731 n=7)
Update/dqlite/1-workers-4                   4.190 ± 0%         4.192 ± 0%       ~ (p=0.689 n=7)
Update/dqlite/4-workers-4                   4.176 ± 1%         4.196 ± 0%       ~ (p=0.052 n=7)
Update/dqlite/16-workers-4                  4.215 ± 0%         4.228 ± 1%       ~ (p=0.090 n=7)
Update/dqlite/64-workers-4                  4.219 ± 1%         4.233 ± 1%       ~ (p=0.535 n=7)
Update/dqlite/128-workers-4                 4.235 ± 1%         4.225 ± 1%       ~ (p=0.473 n=7)
geomean                                                ²                   +0.13%               ²
¹ 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.40µ ±  40%    28.20µ ±  16%        ~ (p=0.555 n=7)
Compaction/dqlite-4                        29.40µ ±  57%    23.60µ ±  60%        ~ (p=0.620 n=7)
Create/sqlite/1-workers-4                  19.30µ ±  52%    24.10µ ±  24%        ~ (p=0.087 n=7)
Create/sqlite/4-workers-4                  22.20µ ±  18%    20.10µ ±   9%        ~ (p=0.091 n=7)
Create/sqlite/16-workers-4                 20.00µ ±  38%    22.30µ ±  22%        ~ (p=0.154 n=7)
Create/sqlite/64-workers-4                 24.20µ ±  22%    26.20µ ±  29%        ~ (p=0.535 n=7)
Create/sqlite/128-workers-4                30.20µ ±  65%    26.00µ ±  35%        ~ (p=0.221 n=7)
Create/dqlite/1-workers-4                  11.20µ ±  46%    10.60µ ±  54%        ~ (p=0.928 n=7)
Create/dqlite/4-workers-4                  11.00µ ± 112%    13.10µ ±  53%        ~ (p=0.594 n=7)
Create/dqlite/16-workers-4                10.400µ ±  51%    9.600µ ±  93%        ~ (p=0.334 n=7)
Create/dqlite/64-workers-4                 9.400µ ±  37%   11.200µ ±  26%        ~ (p=0.174 n=7)
Create/dqlite/128-workers-4                13.30µ ±  38%    11.80µ ±  53%        ~ (p=0.301 n=7)
Delete/sqlite/1-workers-4                  32.40µ ±  41%    34.50µ ±  20%        ~ (p=0.435 n=7)
Delete/sqlite/4-workers-4                  34.80µ ±  13%    34.10µ ±  14%        ~ (p=0.971 n=7)
Delete/sqlite/16-workers-4                 33.40µ ±  21%    36.00µ ±  14%        ~ (p=0.453 n=7)
Delete/sqlite/64-workers-4                 37.10µ ±  37%    41.50µ ±  45%        ~ (p=0.433 n=7)
Delete/sqlite/128-workers-4                41.20µ ±  23%    41.80µ ±  59%        ~ (p=0.902 n=7)
Delete/dqlite/1-workers-4                  15.50µ ±  34%    13.80µ ±  38%        ~ (p=0.073 n=7)
Delete/dqlite/4-workers-4                  15.80µ ±  46%    16.80µ ±  33%        ~ (p=0.805 n=7)
Delete/dqlite/16-workers-4                 17.10µ ±  66%    17.30µ ±  40%        ~ (p=0.318 n=7)
Delete/dqlite/64-workers-4                 17.20µ ±  31%    16.40µ ±  34%        ~ (p=0.561 n=7)
Delete/dqlite/128-workers-4                13.80µ ±  64%    19.30µ ±  25%        ~ (p=0.068 n=7)
Get/sqlite-4                               68.30µ ±   9%    63.60µ ±   6%        ~ (p=0.091 n=7)
Get/dqlite-4                               36.20µ ±   8%    38.30µ ±   8%        ~ (p=0.154 n=7)
List/sqlite-tiny/all-4                     6.100µ ±  23%    6.800µ ±  28%        ~ (p=0.520 n=7)
List/sqlite-tiny/pagination-4             16.100µ ±   6%    8.700µ ±  14%  -45.96% (p=0.001 n=7)
List/sqlite-fits-in-page/all-4             14.60µ ±   7%    12.40µ ±   8%  -15.07% (p=0.001 n=7)
List/sqlite-fits-in-page/pagination-4      39.20µ ±   7%    28.70µ ±   7%  -26.79% (p=0.001 n=7)
List/sqlite-overflows-page/all-4           13.90µ ±   8%    12.40µ ±   2%  -10.79% (p=0.001 n=7)
List/sqlite-overflows-page/pagination-4    45.80µ ±  21%    16.10µ ±   4%  -64.85% (p=0.001 n=7)
List/dqlite-tiny/all-4                     4.300µ ±  47%    3.200µ ±  19%  -25.58% (p=0.022 n=7)
List/dqlite-tiny/pagination-4              8.000µ ±  12%    7.900µ ±  23%        ~ (p=0.474 n=7)
List/dqlite-fits-in-page/all-4             11.10µ ±  19%    10.10µ ±   5%        ~ (p=0.636 n=7)
List/dqlite-fits-in-page/pagination-4      24.10µ ±  26%    18.40µ ±  14%  -23.65% (p=0.007 n=7)
List/dqlite-overflows-page/all-4           35.30µ ±   4%    34.00µ ±  13%   -3.68% (p=0.001 n=7)
List/dqlite-overflows-page/pagination-4    74.00µ ±  14%    41.20µ ±   5%  -44.32% (p=0.001 n=7)
Update/sqlite/1-workers-4                  23.00µ ±  23%    21.30µ ±  22%        ~ (p=0.685 n=7)
Update/sqlite/4-workers-4                  21.70µ ±  21%    20.30µ ±  24%        ~ (p=0.365 n=7)
Update/sqlite/16-workers-4                 21.50µ ±  27%    21.30µ ±  15%        ~ (p=0.640 n=7)
Update/sqlite/64-workers-4                 26.40µ ±  23%    24.20µ ± 107%        ~ (p=0.334 n=7)
Update/sqlite/128-workers-4                28.30µ ±  38%    28.50µ ±  51%        ~ (p=0.928 n=7)
Update/dqlite/1-workers-4                  11.10µ ±  39%    11.20µ ±  71%        ~ (p=0.685 n=7)
Update/dqlite/4-workers-4                  11.40µ ±  39%    11.00µ ±  61%        ~ (p=0.805 n=7)
Update/dqlite/16-workers-4                 12.20µ ±  42%    10.60µ ±  56%        ~ (p=0.829 n=7)
Update/dqlite/64-workers-4                 10.30µ ±  55%    12.90µ ±  57%  +25.24% (p=0.002 n=7)
Update/dqlite/128-workers-4                11.80µ ±  40%    10.90µ ±  50%        ~ (p=0.535 n=7)
geomean                                    19.35µ           18.05µ          -6.70%

                                        │     Before      │                  After                  │
                                        │ sec-writing/op  │ sec-writing/op  vs base                 │
Compaction/sqlite-4                       9.500µ ±  17%      9.300µ ±   5%        ~ (p=0.076 n=7)
Compaction/dqlite-4                       6.800µ ±  12%      6.800µ ±  10%        ~ (p=0.678 n=7)
Create/sqlite/1-workers-4                 258.4µ ±  11%      326.3µ ±  16%  +26.28% (p=0.004 n=7)
Create/sqlite/4-workers-4                 1.793m ±  18%      1.446m ±  16%  -19.35% (p=0.019 n=7)
Create/sqlite/16-workers-4                5.138m ±  12%      5.289m ±  15%        ~ (p=0.535 n=7)
Create/sqlite/64-workers-4                18.19m ±  11%      18.79m ±  12%        ~ (p=0.383 n=7)
Create/sqlite/128-workers-4               64.40m ±  61%      49.34m ±  60%        ~ (p=0.383 n=7)
Create/dqlite/1-workers-4                 36.60µ ±  33%      39.50µ ±  30%        ~ (p=0.902 n=7)
Create/dqlite/4-workers-4                 50.40µ ±  20%      49.30µ ±  32%        ~ (p=0.805 n=7)
Create/dqlite/16-workers-4                44.80µ ±   9%      40.00µ ±  24%        ~ (p=0.245 n=7)
Create/dqlite/64-workers-4                41.30µ ±  34%      44.90µ ±  23%        ~ (p=0.196 n=7)
Create/dqlite/128-workers-4               46.20µ ±  18%      45.50µ ±  12%        ~ (p=0.686 n=7)
Delete/sqlite/1-workers-4                 359.4µ ±  27%      274.8µ ±  22%  -23.54% (p=0.017 n=7)
Delete/sqlite/4-workers-4                 1.461m ±  19%      1.634m ±  17%        ~ (p=0.073 n=7)
Delete/sqlite/16-workers-4                5.533m ±  14%      6.152m ±  13%        ~ (p=0.073 n=7)
Delete/sqlite/64-workers-4                19.50m ± 245%      29.70m ± 375%  +52.31% (p=0.038 n=7)
Delete/sqlite/128-workers-4               40.88m ±  27%      47.35m ± 170%        ~ (p=0.259 n=7)
Delete/dqlite/1-workers-4                 46.30µ ±  25%      47.60µ ±  27%        ~ (p=0.477 n=7)
Delete/dqlite/4-workers-4                 46.70µ ±  16%      48.70µ ±  10%        ~ (p=0.710 n=7)
Delete/dqlite/16-workers-4                44.30µ ±  31%      41.20µ ±  41%        ~ (p=0.067 n=7)
Delete/dqlite/64-workers-4                44.80µ ±  11%      44.50µ ±  27%        ~ (p=0.594 n=7)
Delete/dqlite/128-workers-4               47.00µ ±  37%      39.60µ ±  16%  -15.74% (p=0.003 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                 248.9µ ±   9%      301.7µ ±  44%        ~ (p=0.073 n=7)
Update/sqlite/4-workers-4                 1.437m ±  13%      1.745m ±   8%  +21.43% (p=0.001 n=7)
Update/sqlite/16-workers-4                5.424m ±  12%      5.678m ±  17%        ~ (p=0.383 n=7)
Update/sqlite/64-workers-4                18.62m ± 396%      22.17m ± 308%        ~ (p=0.259 n=7)
Update/sqlite/128-workers-4               50.82m ±  96%      50.55m ±  86%        ~ (p=0.535 n=7)
Update/dqlite/1-workers-4                 38.30µ ±  16%      34.50µ ±  30%        ~ (p=0.176 n=7)
Update/dqlite/4-workers-4                 48.10µ ±  10%      43.80µ ±  15%        ~ (p=0.053 n=7)
Update/dqlite/16-workers-4                46.80µ ±  20%      41.60µ ±  47%        ~ (p=0.318 n=7)
Update/dqlite/64-workers-4                44.10µ ±  21%      43.70µ ±  14%        ~ (p=1.000 n=7)
Update/dqlite/128-workers-4               41.30µ ±  15%      41.60µ ±  23%        ~ (p=0.648 n=7)
geomean                                                 ²                    +0.92%               ²
¹ all samples are equal
² summaries must be >0 to compute geomean

                                        │     Before     │                After                 │
                                        │      B/op      │     B/op       vs base               │
Compaction/sqlite-4                        2.371Ki ± 48%   2.312Ki ± 19%        ~ (p=0.302 n=7)
Compaction/dqlite-4                        4.680Ki ± 74%   3.599Ki ± 86%        ~ (p=0.620 n=7)
Create/sqlite/1-workers-4                  20.45Ki ±  0%   20.41Ki ±  0%   -0.22% (p=0.001 n=7)
Create/sqlite/4-workers-4                  20.47Ki ±  0%   20.40Ki ±  0%   -0.37% (p=0.001 n=7)
Create/sqlite/16-workers-4                 20.43Ki ±  0%   20.37Ki ±  0%   -0.28% (p=0.001 n=7)
Create/sqlite/64-workers-4                 20.49Ki ±  0%   20.42Ki ±  0%   -0.34% (p=0.002 n=7)
Create/sqlite/128-workers-4                20.97Ki ±  4%   20.69Ki ±  2%        ~ (p=0.259 n=7)
Create/dqlite/1-workers-4                  19.76Ki ±  0%   19.67Ki ±  1%   -0.45% (p=0.037 n=7)
Create/dqlite/4-workers-4                  19.82Ki ±  0%   19.67Ki ±  0%   -0.74% (p=0.001 n=7)
Create/dqlite/16-workers-4                 19.77Ki ±  0%   19.73Ki ±  1%        ~ (p=0.091 n=7)
Create/dqlite/64-workers-4                 19.76Ki ±  0%   19.66Ki ±  1%   -0.55% (p=0.011 n=7)
Create/dqlite/128-workers-4                19.81Ki ±  0%   19.72Ki ±  0%   -0.48% (p=0.001 n=7)
Delete/sqlite/1-workers-4                  22.91Ki ±  0%   22.83Ki ±  0%   -0.37% (p=0.001 n=7)
Delete/sqlite/4-workers-4                  22.87Ki ±  0%   22.83Ki ±  0%   -0.14% (p=0.005 n=7)
Delete/sqlite/16-workers-4                 22.86Ki ±  0%   22.83Ki ±  0%   -0.17% (p=0.002 n=7)
Delete/sqlite/64-workers-4                 22.93Ki ±  7%   23.12Ki ±  9%        ~ (p=0.209 n=7)
Delete/sqlite/128-workers-4                23.01Ki ±  1%   23.13Ki ±  8%        ~ (p=0.318 n=7)
Delete/dqlite/1-workers-4                  21.98Ki ±  0%   21.93Ki ±  0%   -0.20% (p=0.002 n=7)
Delete/dqlite/4-workers-4                  21.96Ki ±  0%   21.92Ki ±  0%   -0.18% (p=0.011 n=7)
Delete/dqlite/16-workers-4                 21.94Ki ± 10%   21.91Ki ±  0%        ~ (p=0.533 n=7)
Delete/dqlite/64-workers-4                 21.96Ki ±  2%   21.91Ki ±  0%        ~ (p=0.090 n=7)
Delete/dqlite/128-workers-4                22.00Ki ±  0%   21.96Ki ±  0%   -0.17% (p=0.026 n=7)
Get/sqlite-4                               23.67Ki ±  0%   23.01Ki ±  0%   -2.82% (p=0.001 n=7)
Get/dqlite-4                               22.45Ki ±  0%   21.96Ki ±  0%   -2.19% (p=0.001 n=7)
List/sqlite-tiny/all-4                     1.081Ki ± 12%   1.183Ki ± 15%        ~ (p=0.513 n=7)
List/sqlite-tiny/pagination-4              1.656Ki ±  6%   1.090Ki ±  9%  -34.20% (p=0.001 n=7)
List/sqlite-fits-in-page/all-4             7.818Ki ±  3%   7.350Ki ±  5%   -6.00% (p=0.004 n=7)
List/sqlite-fits-in-page/pagination-4     10.722Ki ±  5%   9.167Ki ±  5%  -14.50% (p=0.001 n=7)
List/sqlite-overflows-page/all-4           20.51Ki ± 12%   20.48Ki ± 12%   -0.10% (p=0.015 n=7)
List/sqlite-overflows-page/pagination-4    28.16Ki ± 31%   18.52Ki ±  5%  -34.23% (p=0.001 n=7)
List/dqlite-tiny/all-4                      1066.0 ± 18%     976.0 ±  7%   -8.44% (p=0.024 n=7)
List/dqlite-tiny/pagination-4                975.0 ±  8%     958.0 ±  2%        ~ (p=0.195 n=7)
List/dqlite-fits-in-page/all-4             6.056Ki ±  5%   5.940Ki ±  7%        ~ (p=0.302 n=7)
List/dqlite-fits-in-page/pagination-4      5.820Ki ± 17%   5.656Ki ±  8%        ~ (p=0.383 n=7)
List/dqlite-overflows-page/all-4           31.01Ki ± 10%   30.70Ki ±  1%        ~ (p=0.259 n=7)
List/dqlite-overflows-page/pagination-4    30.78Ki ±  8%   31.95Ki ±  3%        ~ (p=0.128 n=7)
Update/sqlite/1-workers-4                  21.60Ki ±  0%   21.55Ki ±  0%   -0.23% (p=0.001 n=7)
Update/sqlite/4-workers-4                  21.61Ki ±  0%   21.59Ki ±  0%        ~ (p=0.067 n=7)
Update/sqlite/16-workers-4                 21.59Ki ±  0%   21.56Ki ±  0%   -0.14% (p=0.007 n=7)
Update/sqlite/64-workers-4                 21.63Ki ±  8%   21.62Ki ±  6%        ~ (p=0.333 n=7)
Update/sqlite/128-workers-4                21.86Ki ±  3%   21.82Ki ±  2%        ~ (p=0.456 n=7)
Update/dqlite/1-workers-4                  20.86Ki ±  0%   20.80Ki ±  0%   -0.31% (p=0.019 n=7)
Update/dqlite/4-workers-4                  20.86Ki ±  0%   20.74Ki ±  0%   -0.56% (p=0.001 n=7)
Update/dqlite/16-workers-4                 20.86Ki ±  0%   20.76Ki ±  0%   -0.45% (p=0.007 n=7)
Update/dqlite/64-workers-4                 20.84Ki ±  0%   20.72Ki ±  1%   -0.56% (p=0.011 n=7)
Update/dqlite/128-workers-4                20.79Ki ±  7%   20.74Ki ±  0%        ~ (p=0.165 n=7)
geomean                                    14.24Ki         13.78Ki         -3.23%

                                        │    Before    │                After                 │
                                        │  allocs/op   │  allocs/op   vs base                 │
Compaction/sqlite-4                        51.00 ± 49%   50.00 ± 20%        ~ (p=0.268 n=7)
Compaction/dqlite-4                       112.00 ± 75%   86.00 ± 87%        ~ (p=0.594 n=7)
Create/sqlite/1-workers-4                  396.0 ±  0%   396.0 ±  0%        ~ (p=1.000 n=7) ¹
Create/sqlite/4-workers-4                  396.0 ±  0%   396.0 ±  0%        ~ (p=1.000 n=7) ¹
Create/sqlite/16-workers-4                 396.0 ±  0%   396.0 ±  0%        ~ (p=0.559 n=7)
Create/sqlite/64-workers-4                 396.0 ±  0%   396.0 ±  0%        ~ (p=0.674 n=7)
Create/sqlite/128-workers-4                402.0 ±  2%   399.0 ±  1%        ~ (p=0.330 n=7)
Create/dqlite/1-workers-4                  366.0 ±  0%   366.0 ±  0%        ~ (p=1.000 n=7) ¹
Create/dqlite/4-workers-4                  366.0 ±  0%   366.0 ±  0%        ~ (p=1.000 n=7) ¹
Create/dqlite/16-workers-4                 366.0 ±  0%   366.0 ±  0%        ~ (p=1.000 n=7) ¹
Create/dqlite/64-workers-4                 366.0 ±  0%   366.0 ±  0%        ~ (p=1.000 n=7)
Create/dqlite/128-workers-4                365.0 ±  0%   365.0 ±  0%        ~ (p=1.000 n=7) ¹
Delete/sqlite/1-workers-4                  427.0 ±  0%   427.0 ±  0%        ~ (p=1.000 n=7) ¹
Delete/sqlite/4-workers-4                  427.0 ±  0%   427.0 ±  0%        ~ (p=1.000 n=7) ¹
Delete/sqlite/16-workers-4                 427.0 ±  0%   427.0 ±  0%        ~ (p=1.000 n=7)
Delete/sqlite/64-workers-4                 427.0 ±  2%   428.0 ±  1%        ~ (p=0.142 n=7)
Delete/sqlite/128-workers-4                428.0 ±  1%   429.0 ±  0%   +0.23% (p=0.035 n=7)
Delete/dqlite/1-workers-4                  395.0 ±  0%   395.0 ±  0%        ~ (p=1.000 n=7)
Delete/dqlite/4-workers-4                  395.0 ±  0%   395.0 ±  0%        ~ (p=1.000 n=7) ¹
Delete/dqlite/16-workers-4                 395.0 ± 12%   395.0 ±  0%        ~ (p=1.000 n=7)
Delete/dqlite/64-workers-4                 395.0 ±  3%   395.0 ±  0%        ~ (p=1.000 n=7)
Delete/dqlite/128-workers-4                395.0 ±  0%   394.0 ±  0%        ~ (p=0.266 n=7)
Get/sqlite-4                               436.0 ±  0%   414.0 ±  0%   -5.05% (p=0.001 n=7)
Get/dqlite-4                               403.0 ±  0%   392.0 ±  0%   -2.73% (p=0.001 n=7)
List/sqlite-tiny/all-4                     15.00 ± 20%   16.00 ± 25%        ~ (p=0.744 n=7)
List/sqlite-tiny/pagination-4              28.00 ±  7%   15.00 ± 20%  -46.43% (p=0.001 n=7)
List/sqlite-fits-in-page/all-4             23.00 ±  4%   20.00 ± 10%  -13.04% (p=0.001 n=7)
List/sqlite-fits-in-page/pagination-4      40.00 ±  7%   30.00 ± 10%  -25.00% (p=0.001 n=7)
List/sqlite-overflows-page/all-4          10.000 ±  0%   8.000 ±  0%  -20.00% (p=0.001 n=7)
List/sqlite-overflows-page/pagination-4   18.000 ± 44%   8.000 ± 12%  -55.56% (p=0.001 n=7)
List/dqlite-tiny/all-4                     16.00 ± 31%   12.00 ±  8%  -25.00% (p=0.005 n=7)
List/dqlite-tiny/pagination-4              14.00 ±  7%   12.00 ±  0%  -14.29% (p=0.001 n=7)
List/dqlite-fits-in-page/all-4             22.00 ±  5%   18.00 ±  0%  -18.18% (p=0.001 n=7)
List/dqlite-fits-in-page/pagination-4      20.00 ± 30%   16.00 ± 25%        ~ (p=0.078 n=7)
List/dqlite-overflows-page/all-4           36.00 ±  3%   32.00 ±  3%  -11.11% (p=0.001 n=7)
List/dqlite-overflows-page/pagination-4    36.00 ± 11%   34.00 ±  3%   -5.56% (p=0.022 n=7)
Update/sqlite/1-workers-4                  403.0 ±  0%   403.0 ±  0%        ~ (p=1.000 n=7) ¹
Update/sqlite/4-workers-4                  403.0 ±  0%   403.0 ±  0%        ~ (p=1.000 n=7)
Update/sqlite/16-workers-4                 403.0 ±  0%   403.0 ±  0%        ~ (p=0.559 n=7)
Update/sqlite/64-workers-4                 403.0 ±  3%   403.0 ±  1%        ~ (p=1.000 n=7)
Update/sqlite/128-workers-4                406.0 ±  1%   406.0 ±  0%        ~ (p=0.704 n=7)
Update/dqlite/1-workers-4                  373.0 ±  0%   372.0 ±  0%   -0.27% (p=0.021 n=7)
Update/dqlite/4-workers-4                  372.0 ±  0%   373.0 ±  0%        ~ (p=1.000 n=7)
Update/dqlite/16-workers-4                 372.0 ±  0%   372.0 ±  0%        ~ (p=1.000 n=7)
Update/dqlite/64-workers-4                 372.0 ±  0%   372.0 ±  0%        ~ (p=1.000 n=7)
Update/dqlite/128-workers-4                371.0 ±  9%   371.0 ±  0%        ~ (p=0.731 n=7)
geomean                                    171.5         159.2         -7.19%
¹ all samples are equal

                                        │        Before         │                    After                     │
                                        │ network-bytes-read/op │ network-bytes-read/op  vs base               │
Compaction/dqlite-4                               1.687Ki ± 76%           1.289Ki ± 89%        ~ (p=0.620 n=7)
Create/dqlite/1-workers-4                           239.9 ±  1%             240.7 ±  1%        ~ (p=0.781 n=7)
Create/dqlite/4-workers-4                           240.8 ±  0%             241.4 ±  1%        ~ (p=0.176 n=7)
Create/dqlite/16-workers-4                          241.3 ±  0%             240.6 ±  0%   -0.29% (p=0.034 n=7)
Create/dqlite/64-workers-4                          241.9 ±  0%             242.4 ±  1%        ~ (p=0.643 n=7)
Create/dqlite/128-workers-4                         240.7 ±  1%             241.7 ±  0%        ~ (p=0.364 n=7)
Delete/dqlite/1-workers-4                           717.1 ±  0%             716.6 ±  0%        ~ (p=0.554 n=7)
Delete/dqlite/4-workers-4                           717.7 ±  0%             717.0 ±  0%        ~ (p=0.598 n=7)
Delete/dqlite/16-workers-4                          719.5 ± 12%             717.6 ±  0%        ~ (p=0.104 n=7)
Delete/dqlite/64-workers-4                          719.2 ±  3%             719.3 ±  0%        ~ (p=1.000 n=7)
Delete/dqlite/128-workers-4                         717.6 ±  0%             716.6 ±  0%        ~ (p=0.301 n=7)
Get/dqlite-4                                       1161.0 ±  0%             996.2 ±  0%  -14.19% (p=0.001 n=7)
List/dqlite-tiny/all-4                              215.5 ± 32%             176.5 ± 15%  -18.10% (p=0.026 n=7)
List/dqlite-tiny/pagination-4                       190.5 ± 10%             178.3 ±  7%        ~ (p=0.066 n=7)
List/dqlite-fits-in-page/all-4                    1.449Ki ±  6%           1.347Ki ±  3%   -7.08% (p=0.001 n=7)
List/dqlite-fits-in-page/pagination-4             1.301Ki ± 33%           1.181Ki ± 22%        ~ (p=0.535 n=7)
List/dqlite-overflows-page/all-4                  7.402Ki ±  4%           7.215Ki ±  3%   -2.53% (p=0.017 n=7)
List/dqlite-overflows-page/pagination-4           7.255Ki ± 19%           7.877Ki ±  4%   +8.57% (p=0.038 n=7)
Update/dqlite/1-workers-4                           263.3 ±  0%             262.7 ±  0%   -0.23% (p=0.001 n=7)
Update/dqlite/4-workers-4                           263.1 ±  0%             263.0 ±  0%        ~ (p=0.185 n=7)
Update/dqlite/16-workers-4                          263.2 ±  0%             262.9 ±  0%   -0.11% (p=0.024 n=7)
Update/dqlite/64-workers-4                          262.6 ±  0%             262.3 ±  0%        ~ (p=0.076 n=7)
Update/dqlite/128-workers-4                         261.9 ± 22%             261.8 ±  0%        ~ (p=0.506 n=7)
geomean                                             562.4                   543.1         -3.43%

                                        │          Before          │                      After                      │
                                        │ network-bytes-written/op │ network-bytes-written/op  vs base               │
Compaction/dqlite-4                                    4.454 ± 12%                4.282 ± 12%        ~ (p=0.620 n=7)
Create/dqlite/1-workers-4                              113.2 ±  3%                114.9 ±  2%        ~ (p=0.931 n=7)
Create/dqlite/4-workers-4                              115.1 ±  2%                116.3 ±  2%        ~ (p=0.240 n=7)
Create/dqlite/16-workers-4                             115.6 ±  2%                115.0 ±  1%        ~ (p=0.091 n=7)
Create/dqlite/64-workers-4                             116.9 ±  1%                117.8 ±  3%        ~ (p=0.644 n=7)
Create/dqlite/128-workers-4                            114.9 ±  2%                116.8 ±  2%        ~ (p=0.219 n=7)
Delete/dqlite/1-workers-4                              82.16 ±  1%                81.85 ±  1%        ~ (p=0.335 n=7)
Delete/dqlite/4-workers-4                              82.45 ±  1%                82.02 ±  1%        ~ (p=0.535 n=7)
Delete/dqlite/16-workers-4                             83.11 ± 34%                82.33 ±  2%        ~ (p=0.097 n=7)
Delete/dqlite/64-workers-4                             82.99 ±  9%                83.04 ±  2%        ~ (p=1.000 n=7)
Delete/dqlite/128-workers-4                            82.35 ±  2%                81.89 ±  1%        ~ (p=0.245 n=7)
Get/dqlite-4                                           96.44 ±  0%                88.54 ±  0%   -8.19% (p=0.001 n=7)
List/dqlite-tiny/all-4                               0.04824 ± 58%              0.03936 ± 27%  -18.41% (p=0.024 n=7)
List/dqlite-tiny/pagination-4                        0.04276 ± 17%              0.04483 ±  8%        ~ (p=0.128 n=7)
List/dqlite-fits-in-page/all-4                       0.06904 ±  9%              0.06398 ±  7%   -7.33% (p=0.007 n=7)
List/dqlite-fits-in-page/pagination-4                0.07547 ± 39%              0.06712 ± 25%        ~ (p=0.456 n=7)
List/dqlite-overflows-page/all-4                     0.08572 ±  7%              0.08300 ±  6%   -3.17% (p=0.041 n=7)
List/dqlite-overflows-page/pagination-4               0.1290 ± 16%               0.1116 ± 16%  -13.49% (p=0.007 n=7)
Update/dqlite/1-workers-4                              137.4 ±  0%                137.0 ±  0%        ~ (p=0.194 n=7)
Update/dqlite/4-workers-4                              137.4 ±  0%                136.8 ±  0%   -0.44% (p=0.003 n=7)
Update/dqlite/16-workers-4                             137.8 ±  1%                137.1 ±  0%        ~ (p=0.069 n=7)
Update/dqlite/64-workers-4                             137.5 ±  0%                136.7 ±  1%   -0.58% (p=0.005 n=7)
Update/dqlite/128-workers-4                            136.9 ± 14%                136.8 ±  0%        ~ (p=0.515 n=7)
geomean                                                13.90                      13.51         -2.79%
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.25µ ±    5%
Compaction/dqlite-4                       43.58µ ±    7%
Create/sqlite/1-workers-4                 556.5µ ±    9%
Create/sqlite/4-workers-4                 503.6µ ±   11%
Create/sqlite/16-workers-4                444.2µ ±    6%
Create/sqlite/64-workers-4                503.3µ ±   28%
Create/sqlite/128-workers-4               1.077m ±   89%
Create/dqlite/1-workers-4                 1.111m ±   12%
Create/dqlite/4-workers-4                 1.019m ±   17%
Create/dqlite/16-workers-4                1.195m ±   11%
Create/dqlite/64-workers-4                1.002m ±   18%
Create/dqlite/128-workers-4               1.072m ±   16%
Delete/sqlite/1-workers-4                 497.1µ ±   16%
Delete/sqlite/4-workers-4                 560.6µ ±   17%
Delete/sqlite/16-workers-4                536.6µ ±   21%
Delete/sqlite/64-workers-4                1.577m ±  826%
Delete/sqlite/128-workers-4               1.192m ±  880%
Delete/dqlite/1-workers-4                 1.193m ±   16%
Delete/dqlite/4-workers-4                 1.160m ±   19%
Delete/dqlite/16-workers-4                1.128m ±   21%
Delete/dqlite/64-workers-4                995.4µ ±   12%
Delete/dqlite/128-workers-4               1.134m ±    9%
Get/sqlite-4                              229.4µ ±    2%
Get/dqlite-4                              343.3µ ±    2%
List/sqlite-tiny/all-4                    3.636µ ±    9%
List/sqlite-tiny/pagination-4             6.012µ ±    3%
List/sqlite-fits-in-page/all-4            6.885µ ±    5%
List/sqlite-fits-in-page/pagination-4     17.28µ ±    3%
List/sqlite-overflows-page/all-4          15.85µ ±    2%
List/sqlite-overflows-page/pagination-4   20.33µ ±    4%
List/dqlite-tiny/all-4                    2.487µ ±   10%
List/dqlite-tiny/pagination-4             4.685µ ±    3%
List/dqlite-fits-in-page/all-4            6.337µ ±    5%
List/dqlite-fits-in-page/pagination-4     13.28µ ±    4%
List/dqlite-overflows-page/all-4          21.02µ ±    3%
List/dqlite-overflows-page/pagination-4   25.43µ ±    3%
Update/sqlite/1-workers-4                 542.1µ ±   22%
Update/sqlite/4-workers-4                 604.3µ ±   11%
Update/sqlite/16-workers-4                519.6µ ±   25%
Update/sqlite/64-workers-4                739.5µ ± 1467%
Update/sqlite/128-workers-4               1.337m ±  241%
Update/dqlite/1-workers-4                 1.221m ±   10%
Update/dqlite/4-workers-4                 962.1µ ±    7%
Update/dqlite/16-workers-4                946.3µ ±   13%
Update/dqlite/64-workers-4                964.9µ ±   17%
Update/dqlite/128-workers-4               935.1µ ±   13%
geomean                                   216.1µ

                                        │        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.24 ±  1%
Compaction/dqlite-4                         12.19 ±  1%
Create/sqlite/1-workers-4                   13.81 ±  1%
Create/sqlite/4-workers-4                   12.76 ±  3%
Create/sqlite/16-workers-4                  10.55 ±  9%
Create/sqlite/64-workers-4                  9.087 ±  7%
Create/sqlite/128-workers-4                 8.262 ±  8%
Create/dqlite/1-workers-4                   13.24 ±  2%
Create/dqlite/4-workers-4                   10.92 ±  2%
Create/dqlite/16-workers-4                  10.95 ±  4%
Create/dqlite/64-workers-4                  11.08 ±  2%
Create/dqlite/128-workers-4                 11.08 ±  3%
Delete/sqlite/1-workers-4                   16.22 ±  0%
Delete/sqlite/4-workers-4                   15.09 ±  3%
Delete/sqlite/16-workers-4                  12.51 ±  7%
Delete/sqlite/64-workers-4                  10.14 ± 29%
Delete/sqlite/128-workers-4                 9.586 ± 35%
Delete/dqlite/1-workers-4                   15.65 ±  1%
Delete/dqlite/4-workers-4                   13.52 ±  1%
Delete/dqlite/16-workers-4                  13.47 ±  2%
Delete/dqlite/64-workers-4                  13.37 ±  1%
Delete/dqlite/128-workers-4                 13.34 ±  1%
Get/sqlite-4                                14.96 ±  0%
Get/dqlite-4                                11.96 ±  0%
List/sqlite-tiny/all-4                     191.9m ±  1%
List/sqlite-tiny/pagination-4               1.125 ±  3%
List/sqlite-fits-in-page/all-4             163.9m ±  0%
List/sqlite-fits-in-page/pagination-4      960.2m ±  3%
List/sqlite-overflows-page/all-4           177.2m ±  0%
List/sqlite-overflows-page/pagination-4     1.065 ±  3%
List/dqlite-tiny/all-4                     190.8m ±  1%
List/dqlite-tiny/pagination-4               1.126 ±  3%
List/dqlite-fits-in-page/all-4             164.2m ±  0%
List/dqlite-fits-in-page/pagination-4      954.3m ±  3%
List/dqlite-overflows-page/all-4           184.4m ±  0%
List/dqlite-overflows-page/pagination-4     1.093 ±  3%
Update/sqlite/1-workers-4                   15.77 ±  1%
Update/sqlite/4-workers-4                   15.09 ±  3%
Update/sqlite/16-workers-4                  13.10 ±  9%
Update/sqlite/64-workers-4                  10.99 ± 47%
Update/sqlite/128-workers-4                 10.16 ± 43%
Update/dqlite/1-workers-4                   15.10 ±  2%
Update/dqlite/4-workers-4                   12.77 ±  1%
Update/dqlite/16-workers-4                  12.77 ±  1%
Update/dqlite/64-workers-4                  12.65 ±  3%
Update/dqlite/128-workers-4                 12.68 ±  1%
geomean                                     5.169

                                        │     After      │
                                        │ page-writes/op │
Compaction/sqlite-4                        190.8m ± 0%
Compaction/dqlite-4                        187.6m ± 1%
Create/sqlite/1-workers-4                   4.348 ± 0%
Create/sqlite/4-workers-4                   4.307 ± 2%
Create/sqlite/16-workers-4                  4.316 ± 1%
Create/sqlite/64-workers-4                  4.254 ± 1%
Create/sqlite/128-workers-4                 4.119 ± 2%
Create/dqlite/1-workers-4                   4.228 ± 2%
Create/dqlite/4-workers-4                   4.282 ± 3%
Create/dqlite/16-workers-4                  4.185 ± 2%
Create/dqlite/64-workers-4                  4.306 ± 3%
Create/dqlite/128-workers-4                 4.280 ± 2%
Delete/sqlite/1-workers-4                   4.385 ± 1%
Delete/sqlite/4-workers-4                   4.399 ± 1%
Delete/sqlite/16-workers-4                  4.383 ± 1%
Delete/sqlite/64-workers-4                  4.281 ± 4%
Delete/sqlite/128-workers-4                 4.293 ± 4%
Delete/dqlite/1-workers-4                   4.347 ± 1%
Delete/dqlite/4-workers-4                   4.365 ± 1%
Delete/dqlite/16-workers-4                  4.372 ± 1%
Delete/dqlite/64-workers-4                  4.344 ± 1%
Delete/dqlite/128-workers-4                 4.364 ± 1%
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.233 ± 0%
Update/sqlite/4-workers-4                   4.296 ± 1%
Update/sqlite/16-workers-4                  4.319 ± 1%
Update/sqlite/64-workers-4                  4.287 ± 7%
Update/sqlite/128-workers-4                 4.206 ± 4%
Update/dqlite/1-workers-4                   4.192 ± 0%
Update/dqlite/4-workers-4                   4.196 ± 0%
Update/dqlite/16-workers-4                  4.228 ± 1%
Update/dqlite/64-workers-4                  4.233 ± 1%
Update/dqlite/128-workers-4                 4.225 ± 1%
geomean                                                ¹
¹ summaries must be >0 to compute geomean

                                        │     After      │
                                        │ sec-reading/op │
Compaction/sqlite-4                        28.20µ ±  16%
Compaction/dqlite-4                        23.60µ ±  60%
Create/sqlite/1-workers-4                  24.10µ ±  24%
Create/sqlite/4-workers-4                  20.10µ ±   9%
Create/sqlite/16-workers-4                 22.30µ ±  22%
Create/sqlite/64-workers-4                 26.20µ ±  29%
Create/sqlite/128-workers-4                26.00µ ±  35%
Create/dqlite/1-workers-4                  10.60µ ±  54%
Create/dqlite/4-workers-4                  13.10µ ±  53%
Create/dqlite/16-workers-4                 9.600µ ±  93%
Create/dqlite/64-workers-4                 11.20µ ±  26%
Create/dqlite/128-workers-4                11.80µ ±  53%
Delete/sqlite/1-workers-4                  34.50µ ±  20%
Delete/sqlite/4-workers-4                  34.10µ ±  14%
Delete/sqlite/16-workers-4                 36.00µ ±  14%
Delete/sqlite/64-workers-4                 41.50µ ±  45%
Delete/sqlite/128-workers-4                41.80µ ±  59%
Delete/dqlite/1-workers-4                  13.80µ ±  38%
Delete/dqlite/4-workers-4                  16.80µ ±  33%
Delete/dqlite/16-workers-4                 17.30µ ±  40%
Delete/dqlite/64-workers-4                 16.40µ ±  34%
Delete/dqlite/128-workers-4                19.30µ ±  25%
Get/sqlite-4                               63.60µ ±   6%
Get/dqlite-4                               38.30µ ±   8%
List/sqlite-tiny/all-4                     6.800µ ±  28%
List/sqlite-tiny/pagination-4              8.700µ ±  14%
List/sqlite-fits-in-page/all-4             12.40µ ±   8%
List/sqlite-fits-in-page/pagination-4      28.70µ ±   7%
List/sqlite-overflows-page/all-4           12.40µ ±   2%
List/sqlite-overflows-page/pagination-4    16.10µ ±   4%
List/dqlite-tiny/all-4                     3.200µ ±  19%
List/dqlite-tiny/pagination-4              7.900µ ±  23%
List/dqlite-fits-in-page/all-4             10.10µ ±   5%
List/dqlite-fits-in-page/pagination-4      18.40µ ±  14%
List/dqlite-overflows-page/all-4           34.00µ ±  13%
List/dqlite-overflows-page/pagination-4    41.20µ ±   5%
Update/sqlite/1-workers-4                  21.30µ ±  22%
Update/sqlite/4-workers-4                  20.30µ ±  24%
Update/sqlite/16-workers-4                 21.30µ ±  15%
Update/sqlite/64-workers-4                 24.20µ ± 107%
Update/sqlite/128-workers-4                28.50µ ±  51%
Update/dqlite/1-workers-4                  11.20µ ±  71%
Update/dqlite/4-workers-4                  11.00µ ±  61%
Update/dqlite/16-workers-4                 10.60µ ±  56%
Update/dqlite/64-workers-4                 12.90µ ±  57%
Update/dqlite/128-workers-4                10.90µ ±  50%
geomean                                    18.05µ

                                        │      After      │
                                        │ sec-writing/op  │
Compaction/sqlite-4                       9.300µ ±   5%
Compaction/dqlite-4                       6.800µ ±  10%
Create/sqlite/1-workers-4                 326.3µ ±  16%
Create/sqlite/4-workers-4                 1.446m ±  16%
Create/sqlite/16-workers-4                5.289m ±  15%
Create/sqlite/64-workers-4                18.79m ±  12%
Create/sqlite/128-workers-4               49.34m ±  60%
Create/dqlite/1-workers-4                 39.50µ ±  30%
Create/dqlite/4-workers-4                 49.30µ ±  32%
Create/dqlite/16-workers-4                40.00µ ±  24%
Create/dqlite/64-workers-4                44.90µ ±  23%
Create/dqlite/128-workers-4               45.50µ ±  12%
Delete/sqlite/1-workers-4                 274.8µ ±  22%
Delete/sqlite/4-workers-4                 1.634m ±  17%
Delete/sqlite/16-workers-4                6.152m ±  13%
Delete/sqlite/64-workers-4                29.70m ± 375%
Delete/sqlite/128-workers-4               47.35m ± 170%
Delete/dqlite/1-workers-4                 47.60µ ±  27%
Delete/dqlite/4-workers-4                 48.70µ ±  10%
Delete/dqlite/16-workers-4                41.20µ ±  41%
Delete/dqlite/64-workers-4                44.50µ ±  27%
Delete/dqlite/128-workers-4               39.60µ ±  16%
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                 301.7µ ±  44%
Update/sqlite/4-workers-4                 1.745m ±   8%
Update/sqlite/16-workers-4                5.678m ±  17%
Update/sqlite/64-workers-4                22.17m ± 308%
Update/sqlite/128-workers-4               50.55m ±  86%
Update/dqlite/1-workers-4                 34.50µ ±  30%
Update/dqlite/4-workers-4                 43.80µ ±  15%
Update/dqlite/16-workers-4                41.60µ ±  47%
Update/dqlite/64-workers-4                43.70µ ±  14%
Update/dqlite/128-workers-4               41.60µ ±  23%
geomean                                                 ¹
¹ summaries must be >0 to compute geomean

                                        │     After     │
                                        │     B/op      │
Compaction/sqlite-4                       2.312Ki ± 19%
Compaction/dqlite-4                       3.599Ki ± 86%
Create/sqlite/1-workers-4                 20.41Ki ±  0%
Create/sqlite/4-workers-4                 20.40Ki ±  0%
Create/sqlite/16-workers-4                20.37Ki ±  0%
Create/sqlite/64-workers-4                20.42Ki ±  0%
Create/sqlite/128-workers-4               20.69Ki ±  2%
Create/dqlite/1-workers-4                 19.67Ki ±  1%
Create/dqlite/4-workers-4                 19.67Ki ±  0%
Create/dqlite/16-workers-4                19.73Ki ±  1%
Create/dqlite/64-workers-4                19.66Ki ±  1%
Create/dqlite/128-workers-4               19.72Ki ±  0%
Delete/sqlite/1-workers-4                 22.83Ki ±  0%
Delete/sqlite/4-workers-4                 22.83Ki ±  0%
Delete/sqlite/16-workers-4                22.83Ki ±  0%
Delete/sqlite/64-workers-4                23.12Ki ±  9%
Delete/sqlite/128-workers-4               23.13Ki ±  8%
Delete/dqlite/1-workers-4                 21.93Ki ±  0%
Delete/dqlite/4-workers-4                 21.92Ki ±  0%
Delete/dqlite/16-workers-4                21.91Ki ±  0%
Delete/dqlite/64-workers-4                21.91Ki ±  0%
Delete/dqlite/128-workers-4               21.96Ki ±  0%
Get/sqlite-4                              23.01Ki ±  0%
Get/dqlite-4                              21.96Ki ±  0%
List/sqlite-tiny/all-4                    1.183Ki ± 15%
List/sqlite-tiny/pagination-4             1.090Ki ±  9%
List/sqlite-fits-in-page/all-4            7.350Ki ±  5%
List/sqlite-fits-in-page/pagination-4     9.167Ki ±  5%
List/sqlite-overflows-page/all-4          20.48Ki ± 12%
List/sqlite-overflows-page/pagination-4   18.52Ki ±  5%
List/dqlite-tiny/all-4                      976.0 ±  7%
List/dqlite-tiny/pagination-4               958.0 ±  2%
List/dqlite-fits-in-page/all-4            5.940Ki ±  7%
List/dqlite-fits-in-page/pagination-4     5.656Ki ±  8%
List/dqlite-overflows-page/all-4          30.70Ki ±  1%
List/dqlite-overflows-page/pagination-4   31.95Ki ±  3%
Update/sqlite/1-workers-4                 21.55Ki ±  0%
Update/sqlite/4-workers-4                 21.59Ki ±  0%
Update/sqlite/16-workers-4                21.56Ki ±  0%
Update/sqlite/64-workers-4                21.62Ki ±  6%
Update/sqlite/128-workers-4               21.82Ki ±  2%
Update/dqlite/1-workers-4                 20.80Ki ±  0%
Update/dqlite/4-workers-4                 20.74Ki ±  0%
Update/dqlite/16-workers-4                20.76Ki ±  0%
Update/dqlite/64-workers-4                20.72Ki ±  1%
Update/dqlite/128-workers-4               20.74Ki ±  0%
geomean                                   13.78Ki

                                        │    After    │
                                        │  allocs/op  │
Compaction/sqlite-4                       50.00 ± 20%
Compaction/dqlite-4                       86.00 ± 87%
Create/sqlite/1-workers-4                 396.0 ±  0%
Create/sqlite/4-workers-4                 396.0 ±  0%
Create/sqlite/16-workers-4                396.0 ±  0%
Create/sqlite/64-workers-4                396.0 ±  0%
Create/sqlite/128-workers-4               399.0 ±  1%
Create/dqlite/1-workers-4                 366.0 ±  0%
Create/dqlite/4-workers-4                 366.0 ±  0%
Create/dqlite/16-workers-4                366.0 ±  0%
Create/dqlite/64-workers-4                366.0 ±  0%
Create/dqlite/128-workers-4               365.0 ±  0%
Delete/sqlite/1-workers-4                 427.0 ±  0%
Delete/sqlite/4-workers-4                 427.0 ±  0%
Delete/sqlite/16-workers-4                427.0 ±  0%
Delete/sqlite/64-workers-4                428.0 ±  1%
Delete/sqlite/128-workers-4               429.0 ±  0%
Delete/dqlite/1-workers-4                 395.0 ±  0%
Delete/dqlite/4-workers-4                 395.0 ±  0%
Delete/dqlite/16-workers-4                395.0 ±  0%
Delete/dqlite/64-workers-4                395.0 ±  0%
Delete/dqlite/128-workers-4               394.0 ±  0%
Get/sqlite-4                              414.0 ±  0%
Get/dqlite-4                              392.0 ±  0%
List/sqlite-tiny/all-4                    16.00 ± 25%
List/sqlite-tiny/pagination-4             15.00 ± 20%
List/sqlite-fits-in-page/all-4            20.00 ± 10%
List/sqlite-fits-in-page/pagination-4     30.00 ± 10%
List/sqlite-overflows-page/all-4          8.000 ±  0%
List/sqlite-overflows-page/pagination-4   8.000 ± 12%
List/dqlite-tiny/all-4                    12.00 ±  8%
List/dqlite-tiny/pagination-4             12.00 ±  0%
List/dqlite-fits-in-page/all-4            18.00 ±  0%
List/dqlite-fits-in-page/pagination-4     16.00 ± 25%
List/dqlite-overflows-page/all-4          32.00 ±  3%
List/dqlite-overflows-page/pagination-4   34.00 ±  3%
Update/sqlite/1-workers-4                 403.0 ±  0%
Update/sqlite/4-workers-4                 403.0 ±  0%
Update/sqlite/16-workers-4                403.0 ±  0%
Update/sqlite/64-workers-4                403.0 ±  1%
Update/sqlite/128-workers-4               406.0 ±  0%
Update/dqlite/1-workers-4                 372.0 ±  0%
Update/dqlite/4-workers-4                 373.0 ±  0%
Update/dqlite/16-workers-4                372.0 ±  0%
Update/dqlite/64-workers-4                372.0 ±  0%
Update/dqlite/128-workers-4               371.0 ±  0%
geomean                                   159.2

                                        │         After         │
                                        │ network-bytes-read/op │
Compaction/dqlite-4                               1.289Ki ± 89%
Create/dqlite/1-workers-4                           240.7 ±  1%
Create/dqlite/4-workers-4                           241.4 ±  1%
Create/dqlite/16-workers-4                          240.6 ±  0%
Create/dqlite/64-workers-4                          242.4 ±  1%
Create/dqlite/128-workers-4                         241.7 ±  0%
Delete/dqlite/1-workers-4                           716.6 ±  0%
Delete/dqlite/4-workers-4                           717.0 ±  0%
Delete/dqlite/16-workers-4                          717.6 ±  0%
Delete/dqlite/64-workers-4                          719.3 ±  0%
Delete/dqlite/128-workers-4                         716.6 ±  0%
Get/dqlite-4                                        996.2 ±  0%
List/dqlite-tiny/all-4                              176.5 ± 15%
List/dqlite-tiny/pagination-4                       178.3 ±  7%
List/dqlite-fits-in-page/all-4                    1.347Ki ±  3%
List/dqlite-fits-in-page/pagination-4             1.181Ki ± 22%
List/dqlite-overflows-page/all-4                  7.215Ki ±  3%
List/dqlite-overflows-page/pagination-4           7.877Ki ±  4%
Update/dqlite/1-workers-4                           262.7 ±  0%
Update/dqlite/4-workers-4                           263.0 ±  0%
Update/dqlite/16-workers-4                          262.9 ±  0%
Update/dqlite/64-workers-4                          262.3 ±  0%
Update/dqlite/128-workers-4                         261.8 ±  0%
geomean                                             543.1

                                        │          After           │
                                        │ network-bytes-written/op │
Compaction/dqlite-4                                    4.282 ± 12%
Create/dqlite/1-workers-4                              114.9 ±  2%
Create/dqlite/4-workers-4                              116.3 ±  2%
Create/dqlite/16-workers-4                             115.0 ±  1%
Create/dqlite/64-workers-4                             117.8 ±  3%
Create/dqlite/128-workers-4                            116.8 ±  2%
Delete/dqlite/1-workers-4                              81.85 ±  1%
Delete/dqlite/4-workers-4                              82.02 ±  1%
Delete/dqlite/16-workers-4                             82.33 ±  2%
Delete/dqlite/64-workers-4                             83.04 ±  2%
Delete/dqlite/128-workers-4                            81.89 ±  1%
Get/dqlite-4                                           88.54 ±  0%
List/dqlite-tiny/all-4                               0.03936 ± 27%
List/dqlite-tiny/pagination-4                        0.04483 ±  8%
List/dqlite-fits-in-page/all-4                       0.06398 ±  7%
List/dqlite-fits-in-page/pagination-4                0.06712 ± 25%
List/dqlite-overflows-page/all-4                     0.08300 ±  6%
List/dqlite-overflows-page/pagination-4               0.1116 ± 16%
Update/dqlite/1-workers-4                              137.0 ±  0%
Update/dqlite/4-workers-4                              136.8 ±  0%
Update/dqlite/16-workers-4                             137.1 ±  0%
Update/dqlite/64-workers-4                             136.7 ±  1%
Update/dqlite/128-workers-4                            136.8 ±  0%
geomean                                                13.51

@marco6 marco6 force-pushed the KU-1750/better-get-queries-after-merge branch from 8309551 to 1d65a6e Compare October 30, 2024 08:52
@marco6 marco6 mentioned this pull request Oct 30, 2024
@marco6 marco6 changed the title [WIP] Improve queries after LogStructured removal Improve queries after LogStructured removal Oct 31, 2024
@marco6 marco6 force-pushed the KU-1750/better-get-queries-after-merge branch from 1d65a6e to 26ae39e Compare October 31, 2024 17:20
@marco6 marco6 force-pushed the KU-1750/better-get-queries-after-merge branch from 26ae39e to 47e6f72 Compare November 25, 2024 10:46
@marco6 marco6 force-pushed the KU-1750/better-get-queries-after-merge branch from 47e6f72 to 9552496 Compare November 27, 2024 10:41
@marco6
Copy link
Collaborator Author

marco6 commented Nov 27, 2024

Marking as ready as #194 was merged.

@marco6 marco6 marked this pull request as ready for review November 27, 2024 10:42
@marco6 marco6 requested a review from a team as a code owner November 27, 2024 10:42
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, thank you Marco!

@@ -42,7 +42,8 @@ func init() {
}

type Dialect interface {
List(ctx context.Context, prefix, startKey string, limit, revision int64, includeDeleted bool) (*sql.Rows, error)
List(ctx context.Context, prefix, startKey string, limit, revision int64) (*sql.Rows, error)
ListTTL(ctx context.Context, revision int64) (*sql.Rows, error)
Copy link
Contributor

Choose a reason for hiding this comment

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

I love this as a separate function on the dialect, it not only makes the queries more readable but also reduces the amount of things we return.

Copy link
Contributor

Choose a reason for hiding this comment

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

This also reflects nicely in the benchmark :) Thanks!

@louiseschmidtgen louiseschmidtgen merged commit 40bd618 into master Nov 27, 2024
8 checks passed
petrutlucian94 added a commit that referenced this pull request Feb 5, 2025
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