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

Add concurrency to create/update/insert benchmarks #171

Merged
merged 4 commits into from
Sep 12, 2024
Merged

Conversation

marco6
Copy link
Collaborator

@marco6 marco6 commented Sep 6, 2024

Single threading benchmarking is interesting, but it is also necessary to understand how the system behaves in the face of multiple concurrent clients contenting the database.

This PR adds concurrency to the write path, while keeping operations distinct (i.e. no mixed create/update/delete load). While still a synthetic load, it can be considered "closer to reality".

@marco6 marco6 requested a review from a team as a code owner September 6, 2024 13:23
Copy link

github-actions bot commented Sep 6, 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                       38.22µ ± 14%   41.66µ ± 11%       ~ (p=0.209 n=7)
Compaction/dqlite-4                       41.62µ ±  5%   44.56µ ±  6%  +7.06% (p=0.001 n=7)
Create/sqlite-4                           1.152m ±  2%
Create/dqlite-4                           1.072m ± 12%
Delete/sqlite-4                           1.286m ±  4%
Delete/dqlite-4                           1.270m ±  4%
Get/sqlite-4                              271.6µ ±  0%   277.7µ ±  1%  +2.24% (p=0.001 n=7)
Get/dqlite-4                              361.6µ ±  1%   367.4µ ±  1%  +1.59% (p=0.007 n=7)
List/sqlite-tiny/all-4                    4.502µ ±  2%   4.582µ ±  2%       ~ (p=0.165 n=7)
List/sqlite-tiny/pagination-4             9.023µ ±  3%   9.205µ ±  5%       ~ (p=0.318 n=7)
List/sqlite-fits-in-page/all-4            7.727µ ±  2%   7.718µ ±  4%       ~ (p=0.620 n=7)
List/sqlite-fits-in-page/pagination-4     22.87µ ±  3%   24.18µ ±  2%  +5.73% (p=0.001 n=7)
List/sqlite-overflows-page/all-4          18.61µ ±  3%   18.76µ ±  3%       ~ (p=0.318 n=7)
List/sqlite-overflows-page/pagination-4   49.78µ ±  5%   49.36µ ±  2%       ~ (p=0.259 n=7)
List/dqlite-tiny/all-4                    2.812µ ±  7%   2.823µ ±  1%       ~ (p=0.435 n=7)
List/dqlite-tiny/pagination-4             5.989µ ±  3%   5.980µ ±  2%       ~ (p=0.620 n=7)
List/dqlite-fits-in-page/all-4            6.177µ ±  3%   6.197µ ±  2%       ~ (p=1.000 n=7)
List/dqlite-fits-in-page/pagination-4     17.06µ ±  6%   16.85µ ±  6%       ~ (p=0.318 n=7)
List/dqlite-overflows-page/all-4          19.60µ ±  2%   19.55µ ±  3%       ~ (p=0.620 n=7)
List/dqlite-overflows-page/pagination-4   44.44µ ±  3%   44.52µ ±  3%       ~ (p=0.805 n=7)
Update/sqlite-4                           1.270m ±  1%
Update/dqlite-4                           1.294m ±  3%
Create/1-workers/sqlite-4                                1.221m ±  5%
Create/2-workers/sqlite-4                                1.285m ±  7%
Create/4-workers/sqlite-4                                1.276m ±  7%
Create/8-workers/sqlite-4                                1.350m ± 14%
Create/16-workers/sqlite-4                               1.591m ± 35%
Create/1-workers/dqlite-4                                1.094m ±  7%
Create/2-workers/dqlite-4                                962.2µ ±  4%
Create/4-workers/dqlite-4                                917.2µ ±  4%
Create/8-workers/dqlite-4                                930.1µ ±  7%
Create/16-workers/dqlite-4                               925.6µ ±  4%
Delete/1-workers/sqlite-4                                1.405m ±  4%
Delete/2-workers/sqlite-4                                1.478m ±  7%
Delete/4-workers/sqlite-4                                1.674m ±  6%
Delete/8-workers/sqlite-4                                1.967m ± 16%
Delete/16-workers/sqlite-4                               2.473m ± 21%
Delete/1-workers/dqlite-4                                1.328m ±  4%
Delete/2-workers/dqlite-4                                1.198m ±  2%
Delete/4-workers/dqlite-4                                1.186m ±  2%
Delete/8-workers/dqlite-4                                1.180m ±  2%
Delete/16-workers/dqlite-4                               1.188m ±  2%
Update/1-workers/sqlite-4                                1.311m ±  7%
Update/2-workers/sqlite-4                                1.455m ±  7%
Update/4-workers/sqlite-4                                1.594m ± 13%
Update/8-workers/sqlite-4                                1.869m ± 16%
Update/16-workers/sqlite-4                               2.528m ± 21%
Update/1-workers/dqlite-4                                1.346m ±  1%
Update/2-workers/dqlite-4                                1.243m ±  1%
Update/4-workers/dqlite-4                                1.162m ±  1%
Update/8-workers/dqlite-4                                1.184m ±  3%
Update/16-workers/dqlite-4                               1.183m ±  1%
geomean                                   63.94µ         318.2µ        +1.74%               ¹
¹ benchmark set differs from baseline; geomeans may not be comparable

                                        │        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-4                                   0.000 ± 0%
Create/dqlite-4                                   0.000 ± 0%
Delete/sqlite-4                                   0.000 ± 0%
Delete/dqlite-4                                   0.000 ± 0%
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-4                                   0.000 ± 0%
Update/dqlite-4                                   0.000 ± 0%
Create/1-workers/sqlite-4                                                  0.000 ± 0%
Create/2-workers/sqlite-4                                                  0.000 ± 0%
Create/4-workers/sqlite-4                                                  0.000 ± 0%
Create/8-workers/sqlite-4                                                  0.000 ± 0%
Create/16-workers/sqlite-4                                                 0.000 ± 0%
Create/1-workers/dqlite-4                                                  0.000 ± 0%
Create/2-workers/dqlite-4                                                  0.000 ± 0%
Create/4-workers/dqlite-4                                                  0.000 ± 0%
Create/8-workers/dqlite-4                                                  0.000 ± 0%
Create/16-workers/dqlite-4                                                 0.000 ± 0%
Delete/1-workers/sqlite-4                                                  0.000 ± 0%
Delete/2-workers/sqlite-4                                                  0.000 ± 0%
Delete/4-workers/sqlite-4                                                  0.000 ± 0%
Delete/8-workers/sqlite-4                                                  0.000 ± 0%
Delete/16-workers/sqlite-4                                                 0.000 ± 0%
Delete/1-workers/dqlite-4                                                  0.000 ± 0%
Delete/2-workers/dqlite-4                                                  0.000 ± 0%
Delete/4-workers/dqlite-4                                                  0.000 ± 0%
Delete/8-workers/dqlite-4                                                  0.000 ± 0%
Delete/16-workers/dqlite-4                                                 0.000 ± 0%
Update/1-workers/sqlite-4                                                  0.000 ± 0%
Update/2-workers/sqlite-4                                                  0.000 ± 0%
Update/4-workers/sqlite-4                                                  0.000 ± 0%
Update/8-workers/sqlite-4                                                  0.000 ± 0%
Update/16-workers/sqlite-4                                                 0.000 ± 0%
Update/1-workers/dqlite-4                                                  0.000 ± 0%
Update/2-workers/dqlite-4                                                  0.000 ± 0%
Update/4-workers/dqlite-4                                                  0.000 ± 0%
Update/8-workers/dqlite-4                                                  0.000 ± 0%
Update/16-workers/dqlite-4                                                 0.000 ± 0%
geomean                                                      ²                         +0.00%               ³ ²
¹ all samples are equal
² summaries must be >0 to compute geomean
³ benchmark set differs from baseline; geomeans may not be comparable

                                        │        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-4                                   0.000 ± 0%
Create/dqlite-4                                   0.000 ± 0%
Delete/sqlite-4                                   0.000 ± 0%
Delete/dqlite-4                                   0.000 ± 0%
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-4                                   0.000 ± 0%
Update/dqlite-4                                   0.000 ± 0%
Create/1-workers/sqlite-4                                                  0.000 ± 0%
Create/2-workers/sqlite-4                                                  0.000 ± 0%
Create/4-workers/sqlite-4                                                  0.000 ± 0%
Create/8-workers/sqlite-4                                                  0.000 ± 0%
Create/16-workers/sqlite-4                                                 0.000 ± 0%
Create/1-workers/dqlite-4                                                  0.000 ± 0%
Create/2-workers/dqlite-4                                                  0.000 ± 0%
Create/4-workers/dqlite-4                                                  0.000 ± 0%
Create/8-workers/dqlite-4                                                  0.000 ± 0%
Create/16-workers/dqlite-4                                                 0.000 ± 0%
Delete/1-workers/sqlite-4                                                  0.000 ± 0%
Delete/2-workers/sqlite-4                                                  0.000 ± 0%
Delete/4-workers/sqlite-4                                                  0.000 ± 0%
Delete/8-workers/sqlite-4                                                  0.000 ± 0%
Delete/16-workers/sqlite-4                                                 0.000 ± 0%
Delete/1-workers/dqlite-4                                                  0.000 ± 0%
Delete/2-workers/dqlite-4                                                  0.000 ± 0%
Delete/4-workers/dqlite-4                                                  0.000 ± 0%
Delete/8-workers/dqlite-4                                                  0.000 ± 0%
Delete/16-workers/dqlite-4                                                 0.000 ± 0%
Update/1-workers/sqlite-4                                                  0.000 ± 0%
Update/2-workers/sqlite-4                                                  0.000 ± 0%
Update/4-workers/sqlite-4                                                  0.000 ± 0%
Update/8-workers/sqlite-4                                                  0.000 ± 0%
Update/16-workers/sqlite-4                                                 0.000 ± 0%
Update/1-workers/dqlite-4                                                  0.000 ± 0%
Update/2-workers/dqlite-4                                                  0.000 ± 0%
Update/4-workers/dqlite-4                                                  0.000 ± 0%
Update/8-workers/dqlite-4                                                  0.000 ± 0%
Update/16-workers/dqlite-4                                                 0.000 ± 0%
geomean                                                      ²                         +0.00%               ³ ²
¹ all samples are equal
² summaries must be >0 to compute geomean
³ benchmark set differs from baseline; geomeans may not be comparable

                                        │    Before     │                 After                 │
                                        │ page-reads/op │ page-reads/op  vs base                │
Compaction/sqlite-4                         12.18 ±  1%     12.25 ±  1%       ~ (p=0.058 n=7)
Compaction/dqlite-4                         12.19 ±  1%     12.19 ±  2%       ~ (p=0.433 n=7)
Create/sqlite-4                             14.18 ±  2%
Create/dqlite-4                             13.36 ±  2%
Delete/sqlite-4                             25.16 ±  3%
Delete/dqlite-4                             24.06 ±  1%
Get/sqlite-4                                14.96 ±  0%     14.95 ±  0%       ~ (p=0.895 n=7)
Get/dqlite-4                                11.96 ±  0%     11.95 ±  0%       ~ (p=0.860 n=7)
List/sqlite-tiny/all-4                     192.4m ±  0%    192.3m ±  0%       ~ (p=0.667 n=7)
List/sqlite-tiny/pagination-4               1.132 ±  3%     1.132 ±  0%       ~ (p=0.535 n=7)
List/sqlite-fits-in-page/all-4             165.1m ±  0%    164.6m ±  0%  -0.30% (p=0.007 n=7)
List/sqlite-fits-in-page/pagination-4      965.7m ±  0%    965.5m ±  0%       ~ (p=0.550 n=7)
List/sqlite-overflows-page/all-4           298.8m ± 22%    295.7m ± 28%       ~ (p=0.710 n=7)
List/sqlite-overflows-page/pagination-4     2.081 ±  2%     2.080 ±  0%  -0.05% (p=0.029 n=7)
List/dqlite-tiny/all-4                     191.2m ±  1%    191.2m ±  0%       ~ (p=0.429 n=7)
List/dqlite-tiny/pagination-4               1.125 ±  3%     1.126 ±  3%       ~ (p=0.720 n=7)
List/dqlite-fits-in-page/all-4             163.2m ± 59%    163.2m ± 59%       ~ (p=0.849 n=7)
List/dqlite-fits-in-page/pagination-4      954.5m ±  3%    954.4m ±  0%       ~ (p=0.875 n=7)
List/dqlite-overflows-page/all-4           182.9m ±  0%    182.8m ±  0%  -0.05% (p=0.033 n=7)
List/dqlite-overflows-page/pagination-4     1.070 ±  3%     1.071 ±  3%       ~ (p=0.286 n=7)
Update/sqlite-4                             25.63 ±  1%
Update/dqlite-4                             24.53 ±  2%
Create/1-workers/sqlite-4                                   14.04 ±  1%
Create/2-workers/sqlite-4                                   13.89 ±  4%
Create/4-workers/sqlite-4                                   13.48 ±  3%
Create/8-workers/sqlite-4                                   13.10 ±  4%
Create/16-workers/sqlite-4                                  12.44 ±  4%
Create/1-workers/dqlite-4                                   13.24 ±  2%
Create/2-workers/dqlite-4                                   11.02 ±  1%
Create/4-workers/dqlite-4                                   11.03 ±  1%
Create/8-workers/dqlite-4                                   11.07 ±  1%
Create/16-workers/dqlite-4                                  11.11 ±  1%
Delete/1-workers/sqlite-4                                   25.12 ±  0%
Delete/2-workers/sqlite-4                                   24.31 ±  4%
Delete/4-workers/sqlite-4                                   22.99 ±  7%
Delete/8-workers/sqlite-4                                   22.14 ±  7%
Delete/16-workers/sqlite-4                                  20.31 ±  4%
Delete/1-workers/dqlite-4                                   24.19 ±  1%
Delete/2-workers/dqlite-4                                   13.36 ±  1%
Delete/4-workers/dqlite-4                                   10.16 ±  2%
Delete/8-workers/dqlite-4                                   11.31 ±  3%
Delete/16-workers/dqlite-4                                  11.22 ±  2%
Update/1-workers/sqlite-4                                   25.82 ±  1%
Update/2-workers/sqlite-4                                   22.76 ±  4%
Update/4-workers/sqlite-4                                   21.91 ±  4%
Update/8-workers/sqlite-4                                   20.49 ±  5%
Update/16-workers/sqlite-4                                  19.83 ±  5%
Update/1-workers/dqlite-4                                   25.07 ±  1%
Update/2-workers/dqlite-4                                   13.85 ±  1%
Update/4-workers/dqlite-4                                   10.19 ±  2%
Update/8-workers/dqlite-4                                   11.20 ±  1%
Update/16-workers/dqlite-4                                  11.23 ±  3%
geomean                                     2.417           6.150        -0.06%               ¹
¹ benchmark set differs from baseline; geomeans may not be comparable

                                        │     Before     │                  After                   │
                                        │ page-writes/op │ page-writes/op  vs base                  │
Compaction/sqlite-4                        207.7m ± 0%        207.8m ± 0%       ~ (p=0.596 n=7)
Compaction/dqlite-4                        188.2m ± 0%        187.3m ± 1%  -0.48% (p=0.041 n=7)
Create/sqlite-4                             5.155 ± 1%
Create/dqlite-4                             4.242 ± 2%
Delete/sqlite-4                             5.321 ± 1%
Delete/dqlite-4                             4.373 ± 1%
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-4                             5.145 ± 0%
Update/dqlite-4                             4.170 ± 0%
Create/1-workers/sqlite-4                                      5.118 ± 2%
Create/2-workers/sqlite-4                                      5.124 ± 1%
Create/4-workers/sqlite-4                                      5.130 ± 1%
Create/8-workers/sqlite-4                                      5.102 ± 1%
Create/16-workers/sqlite-4                                     5.063 ± 1%
Create/1-workers/dqlite-4                                      4.243 ± 2%
Create/2-workers/dqlite-4                                      4.303 ± 0%
Create/4-workers/dqlite-4                                      4.302 ± 0%
Create/8-workers/dqlite-4                                      4.298 ± 1%
Create/16-workers/dqlite-4                                     4.299 ± 0%
Delete/1-workers/sqlite-4                                      5.332 ± 0%
Delete/2-workers/sqlite-4                                      5.314 ± 1%
Delete/4-workers/sqlite-4                                      5.297 ± 1%
Delete/8-workers/sqlite-4                                      5.268 ± 1%
Delete/16-workers/sqlite-4                                     5.330 ± 2%
Delete/1-workers/dqlite-4                                      4.408 ± 1%
Delete/2-workers/dqlite-4                                      4.414 ± 1%
Delete/4-workers/dqlite-4                                      4.390 ± 1%
Delete/8-workers/dqlite-4                                      4.409 ± 1%
Delete/16-workers/dqlite-4                                     4.403 ± 1%
Update/1-workers/sqlite-4                                      5.180 ± 0%
Update/2-workers/sqlite-4                                      5.171 ± 1%
Update/4-workers/sqlite-4                                      5.184 ± 1%
Update/8-workers/sqlite-4                                      5.192 ± 2%
Update/16-workers/sqlite-4                                     5.161 ± 1%
Update/1-workers/dqlite-4                                      4.194 ± 0%
Update/2-workers/dqlite-4                                      4.228 ± 0%
Update/4-workers/dqlite-4                                      4.194 ± 0%
Update/8-workers/dqlite-4                                      4.201 ± 1%
Update/16-workers/dqlite-4                                     4.243 ± 1%
geomean                                                ²                   -0.03%               ³ ²
¹ all samples are equal
² summaries must be >0 to compute geomean
³ benchmark set differs from baseline; geomeans may not be comparable

                                        │     Before     │                  After                  │
                                        │ sec-reading/op │ sec-reading/op  vs base                 │
Compaction/sqlite-4                        117.6µ ±   7%    122.4µ ±   9%        ~ (p=0.259 n=7)
Compaction/dqlite-4                        27.30µ ±  51%    34.30µ ±  24%  +25.64% (p=0.016 n=7)
Create/sqlite-4                            39.90µ ± 228%
Create/dqlite-4                            11.50µ ±  31%
Delete/sqlite-4                            156.2µ ± 168%
Delete/dqlite-4                            59.70µ ±  27%
Get/sqlite-4                               86.70µ ±   6%    90.10µ ±   6%        ~ (p=0.209 n=7)
Get/dqlite-4                               33.60µ ±   3%    33.20µ ±  16%        ~ (p=0.902 n=7)
List/sqlite-tiny/all-4                     14.30µ ±   6%    14.80µ ±   6%   +3.50% (p=0.032 n=7)
List/sqlite-tiny/pagination-4              19.50µ ±   3%    20.10µ ±   7%        ~ (p=0.258 n=7)
List/sqlite-fits-in-page/all-4             18.80µ ±  14%    18.90µ ±  13%        ~ (p=0.383 n=7)
List/sqlite-fits-in-page/pagination-4      63.50µ ±   3%    65.60µ ±   4%   +3.31% (p=0.048 n=7)
List/sqlite-overflows-page/all-4           60.90µ ±  25%    60.00µ ±  25%        ~ (p=0.902 n=7)
List/sqlite-overflows-page/pagination-4    181.5µ ±   1%    180.6µ ±   2%        ~ (p=0.172 n=7)
List/dqlite-tiny/all-4                     4.700µ ±  30%    3.900µ ±  23%        ~ (p=0.726 n=7)
List/dqlite-tiny/pagination-4              8.400µ ±  10%    9.400µ ±   9%  +11.90% (p=0.005 n=7)
List/dqlite-fits-in-page/all-4            10.500µ ±  17%    8.800µ ±  20%        ~ (p=0.291 n=7)
List/dqlite-fits-in-page/pagination-4      26.10µ ±  14%    26.30µ ±  21%        ~ (p=0.902 n=7)
List/dqlite-overflows-page/all-4           33.60µ ±  13%    33.60µ ±   2%        ~ (p=0.809 n=7)
List/dqlite-overflows-page/pagination-4    68.10µ ±  16%    74.50µ ±  12%        ~ (p=0.833 n=7)
Update/sqlite-4                            187.1µ ±  34%
Update/dqlite-4                            113.0µ ±   9%
Create/1-workers/sqlite-4                                   82.20µ ± 119%
Create/2-workers/sqlite-4                                   45.50µ ± 467%
Create/4-workers/sqlite-4                                   68.40µ ± 511%
Create/8-workers/sqlite-4                                   65.10µ ± 256%
Create/16-workers/sqlite-4                                  38.70µ ±  63%
Create/1-workers/dqlite-4                                   8.000µ ± 105%
Create/2-workers/dqlite-4                                   14.20µ ±  35%
Create/4-workers/dqlite-4                                   10.00µ ±  80%
Create/8-workers/dqlite-4                                   12.60µ ±  38%
Create/16-workers/dqlite-4                                  10.90µ ±  49%
Delete/1-workers/sqlite-4                                   194.4µ ±  11%
Delete/2-workers/sqlite-4                                   465.4µ ±  69%
Delete/4-workers/sqlite-4                                   1.242m ±  83%
Delete/8-workers/sqlite-4                                   2.673m ±  55%
Delete/16-workers/sqlite-4                                  6.492m ±  30%
Delete/1-workers/dqlite-4                                   52.30µ ±  25%
Delete/2-workers/dqlite-4                                   53.40µ ±  23%
Delete/4-workers/dqlite-4                                   61.20µ ±  10%
Delete/8-workers/dqlite-4                                   56.40µ ±   9%
Delete/16-workers/dqlite-4                                  63.20µ ±  14%
Update/1-workers/sqlite-4                                   197.2µ ±  17%
Update/2-workers/sqlite-4                                   634.9µ ±  49%
Update/4-workers/sqlite-4                                   970.2µ ± 106%
Update/8-workers/sqlite-4                                   3.191m ±  67%
Update/16-workers/sqlite-4                                  6.917m ±  99%
Update/1-workers/dqlite-4                                   100.0µ ±  36%
Update/2-workers/dqlite-4                                   92.40µ ±  12%
Update/4-workers/dqlite-4                                   72.50µ ±  18%
Update/8-workers/dqlite-4                                   64.30µ ±  21%
Update/16-workers/dqlite-4                                  58.40µ ±   9%
geomean                                    38.53µ           77.60µ          +1.41%               ¹
¹ benchmark set differs from baseline; geomeans may not be comparable

                                        │     Before     │                  After                   │
                                        │ sec-writing/op │ sec-writing/op  vs base                  │
Compaction/sqlite-4                       10.60µ ±  9%       10.70µ ±  7%       ~ (p=0.553 n=7)
Compaction/dqlite-4                       6.900µ ±  4%       7.300µ ±  8%  +5.80% (p=0.004 n=7)
Create/sqlite-4                           888.0µ ±  3%
Create/dqlite-4                           38.90µ ± 28%
Delete/sqlite-4                           896.8µ ±  6%
Delete/dqlite-4                           21.20µ ± 42%
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-4                           806.1µ ±  1%
Update/dqlite-4                           21.60µ ± 21%
Create/1-workers/sqlite-4                                    947.9µ ±  7%
Create/2-workers/sqlite-4                                    1.845m ± 28%
Create/4-workers/sqlite-4                                    3.351m ± 46%
Create/8-workers/sqlite-4                                    6.827m ± 24%
Create/16-workers/sqlite-4                                   13.64m ± 15%
Create/1-workers/dqlite-4                                    37.50µ ± 33%
Create/2-workers/dqlite-4                                    43.90µ ± 18%
Create/4-workers/dqlite-4                                    42.40µ ± 28%
Create/8-workers/dqlite-4                                    45.90µ ± 14%
Create/16-workers/dqlite-4                                   44.40µ ± 14%
Delete/1-workers/sqlite-4                                    974.4µ ±  6%
Delete/2-workers/sqlite-4                                    1.646m ± 32%
Delete/4-workers/sqlite-4                                    3.821m ± 51%
Delete/8-workers/sqlite-4                                    8.968m ± 37%
Delete/16-workers/sqlite-4                                   14.75m ± 56%
Delete/1-workers/dqlite-4                                    26.70µ ± 39%
Delete/2-workers/dqlite-4                                    29.00µ ± 31%
Delete/4-workers/dqlite-4                                    32.80µ ± 31%
Delete/8-workers/dqlite-4                                    30.60µ ± 39%
Delete/16-workers/dqlite-4                                   29.30µ ± 17%
Update/1-workers/sqlite-4                                    844.2µ ± 11%
Update/2-workers/sqlite-4                                    1.717m ± 12%
Update/4-workers/sqlite-4                                    3.623m ± 23%
Update/8-workers/sqlite-4                                    8.141m ± 23%
Update/16-workers/sqlite-4                                   15.43m ± 33%
Update/1-workers/dqlite-4                                    23.00µ ± 38%
Update/2-workers/dqlite-4                                    30.60µ ± 29%
Update/4-workers/dqlite-4                                    26.00µ ± 36%
Update/8-workers/dqlite-4                                    27.90µ ± 25%
Update/16-workers/dqlite-4                                   32.70µ ± 40%
geomean                                                ²                   +0.41%               ³ ²
¹ all samples are equal
² summaries must be >0 to compute geomean
³ benchmark set differs from baseline; geomeans may not be comparable

                                        │    Before     │                 After                  │
                                        │     B/op      │     B/op       vs base                 │
Compaction/sqlite-4                        1012.0 ± 76%    1016.0 ± 57%        ~ (p=0.902 n=7)
Compaction/dqlite-4                       4.559Ki ± 75%   6.042Ki ± 32%  +32.54% (p=0.017 n=7)
Create/sqlite-4                           21.33Ki ±  1%
Create/dqlite-4                           20.07Ki ±  0%
Delete/sqlite-4                           32.67Ki ±  2%
Delete/dqlite-4                           29.46Ki ±  0%
Get/sqlite-4                              25.08Ki ±  0%   25.07Ki ±  0%   -0.04% (p=0.001 n=7)
Get/dqlite-4                              22.89Ki ±  0%   22.88Ki ±  0%   -0.02% (p=0.003 n=7)
List/sqlite-tiny/all-4                    1.271Ki ±  3%   1.255Ki ±  2%        ~ (p=0.397 n=7)
List/sqlite-tiny/pagination-4             1.807Ki ±  3%   1.816Ki ±  5%        ~ (p=1.000 n=7)
List/sqlite-fits-in-page/all-4            5.191Ki ±  2%   5.038Ki ±  3%   -2.95% (p=0.007 n=7)
List/sqlite-fits-in-page/pagination-4     10.23Ki ±  0%   10.23Ki ±  0%        ~ (p=0.928 n=7)
List/sqlite-overflows-page/all-4          26.87Ki ±  5%   26.83Ki ±  7%        ~ (p=0.620 n=7)
List/sqlite-overflows-page/pagination-4   46.15Ki ±  0%   46.12Ki ±  0%        ~ (p=0.644 n=7)
List/dqlite-tiny/all-4                      873.0 ±  8%     873.0 ±  1%        ~ (p=0.481 n=7)
List/dqlite-tiny/pagination-4               840.0 ±  1%     842.0 ±  2%        ~ (p=0.271 n=7)
List/dqlite-fits-in-page/all-4            4.293Ki ±  1%   4.307Ki ±  1%        ~ (p=0.512 n=7)
List/dqlite-fits-in-page/pagination-4     4.427Ki ±  3%   4.290Ki ±  5%        ~ (p=0.318 n=7)
List/dqlite-overflows-page/all-4          21.39Ki ±  1%   21.24Ki ±  1%        ~ (p=0.128 n=7)
List/dqlite-overflows-page/pagination-4   22.82Ki ±  5%   22.51Ki ±  6%        ~ (p=0.902 n=7)
Update/sqlite-4                           30.30Ki ±  1%
Update/dqlite-4                           27.61Ki ±  0%
Create/1-workers/sqlite-4                                 21.22Ki ±  2%
Create/2-workers/sqlite-4                                 21.38Ki ±  3%
Create/4-workers/sqlite-4                                 21.38Ki ±  5%
Create/8-workers/sqlite-4                                 21.35Ki ±  2%
Create/16-workers/sqlite-4                                21.47Ki ±  0%
Create/1-workers/dqlite-4                                 20.07Ki ±  0%
Create/2-workers/dqlite-4                                 20.04Ki ±  0%
Create/4-workers/dqlite-4                                 20.04Ki ±  0%
Create/8-workers/dqlite-4                                 20.04Ki ±  0%
Create/16-workers/dqlite-4                                20.04Ki ±  5%
Delete/1-workers/sqlite-4                                 32.61Ki ±  0%
Delete/2-workers/sqlite-4                                 32.67Ki ±  1%
Delete/4-workers/sqlite-4                                 32.50Ki ±  3%
Delete/8-workers/sqlite-4                                 32.68Ki ±  3%
Delete/16-workers/sqlite-4                                32.30Ki ±  4%
Delete/1-workers/dqlite-4                                 29.46Ki ±  0%
Delete/2-workers/dqlite-4                                 62.88Ki ±  1%
Delete/4-workers/dqlite-4                                 88.71Ki ±  2%
Delete/8-workers/dqlite-4                                 83.35Ki ±  3%
Delete/16-workers/dqlite-4                                83.18Ki ±  2%
Update/1-workers/sqlite-4                                 30.37Ki ±  0%
Update/2-workers/sqlite-4                                 30.46Ki ±  4%
Update/4-workers/sqlite-4                                 30.41Ki ±  0%
Update/8-workers/sqlite-4                                 30.29Ki ±  5%
Update/16-workers/sqlite-4                                30.42Ki ±  3%
Update/1-workers/dqlite-4                                 27.68Ki ±  0%
Update/2-workers/dqlite-4                                 60.80Ki ±  1%
Update/4-workers/dqlite-4                                 83.79Ki ±  2%
Update/8-workers/dqlite-4                                 81.87Ki ±  3%
Update/16-workers/dqlite-4                                81.43Ki ±  1%
geomean                                   8.952Ki         18.84Ki         +1.25%               ¹
¹ benchmark set differs from baseline; geomeans may not be comparable

                                        │   Before    │                After                 │
                                        │  allocs/op  │  allocs/op   vs base                 │
Compaction/sqlite-4                       39.00 ± 82%   39.00 ± 62%        ~ (p=0.899 n=7)
Compaction/dqlite-4                       110.0 ± 76%   146.0 ± 33%  +32.73% (p=0.019 n=7)
Create/sqlite-4                           455.0 ±  2%
Create/dqlite-4                           372.0 ±  0%
Delete/sqlite-4                           729.0 ±  3%
Delete/dqlite-4                           511.0 ±  0%
Get/sqlite-4                              563.0 ±  0%   563.0 ±  0%        ~ (p=1.000 n=7) ¹
Get/dqlite-4                              407.0 ±  0%   407.0 ±  0%        ~ (p=1.000 n=7) ¹
List/sqlite-tiny/all-4                    41.00 ±  2%   41.00 ±  2%        ~ (p=0.617 n=7)
List/sqlite-tiny/pagination-4             63.00 ±  3%   63.00 ±  5%        ~ (p=0.704 n=7)
List/sqlite-fits-in-page/all-4            48.00 ±  2%   46.00 ±  4%   -4.17% (p=0.006 n=7)
List/sqlite-fits-in-page/pagination-4     93.00 ±  0%   93.00 ±  0%        ~ (p=1.000 n=7) ¹
List/sqlite-overflows-page/all-4          57.00 ±  5%   57.00 ±  5%        ~ (p=0.728 n=7)
List/sqlite-overflows-page/pagination-4   93.00 ±  0%   93.00 ±  0%        ~ (p=1.000 n=7) ¹
List/dqlite-tiny/all-4                    14.00 ± 14%   14.00 ±  0%        ~ (p=1.000 n=7)
List/dqlite-tiny/pagination-4             13.00 ±  0%   13.00 ±  0%        ~ (p=1.000 n=7) ¹
List/dqlite-fits-in-page/all-4            18.00 ±  0%   18.00 ±  0%        ~ (p=1.000 n=7) ¹
List/dqlite-fits-in-page/pagination-4     18.00 ±  6%   17.00 ± 12%        ~ (p=0.734 n=7)
List/dqlite-overflows-page/all-4          30.00 ±  0%   29.00 ±  3%        ~ (p=0.070 n=7)
List/dqlite-overflows-page/pagination-4   32.00 ±  6%   32.00 ±  9%        ~ (p=0.911 n=7)
Update/sqlite-4                           670.0 ±  1%
Update/dqlite-4                           492.0 ±  0%
Create/1-workers/sqlite-4                               450.0 ±  2%
Create/2-workers/sqlite-4                               454.0 ±  4%
Create/4-workers/sqlite-4                               454.0 ±  7%
Create/8-workers/sqlite-4                               453.0 ±  3%
Create/16-workers/sqlite-4                              456.0 ±  1%
Create/1-workers/dqlite-4                               372.0 ±  0%
Create/2-workers/dqlite-4                               372.0 ±  0%
Create/4-workers/dqlite-4                               372.0 ±  0%
Create/8-workers/dqlite-4                               372.0 ±  0%
Create/16-workers/dqlite-4                              372.0 ±  7%
Delete/1-workers/sqlite-4                               726.0 ±  0%
Delete/2-workers/sqlite-4                               727.0 ±  2%
Delete/4-workers/sqlite-4                               722.0 ±  4%
Delete/8-workers/sqlite-4                               725.0 ±  3%
Delete/16-workers/sqlite-4                              711.0 ±  6%
Delete/1-workers/dqlite-4                               510.0 ±  0%
Delete/2-workers/dqlite-4                               552.0 ±  0%
Delete/4-workers/dqlite-4                               580.0 ±  1%
Delete/8-workers/dqlite-4                               560.0 ±  1%
Delete/16-workers/dqlite-4                              562.0 ±  1%
Update/1-workers/sqlite-4                               670.0 ±  1%
Update/2-workers/sqlite-4                               671.0 ±  5%
Update/4-workers/sqlite-4                               669.0 ±  1%
Update/8-workers/sqlite-4                               662.0 ±  6%
Update/16-workers/sqlite-4                              666.0 ±  4%
Update/1-workers/dqlite-4                               492.0 ±  0%
Update/2-workers/dqlite-4                               534.0 ±  0%
Update/4-workers/dqlite-4                               559.0 ±  1%
Update/8-workers/dqlite-4                               543.0 ±  1%
Update/16-workers/dqlite-4                              545.0 ±  1%
geomean                                   98.44         240.1         +0.94%               ²
¹ all samples are equal
² benchmark set differs from baseline; geomeans may not be comparable

                                        │        Before         │                     After                      │
                                        │ network-bytes-read/op │ network-bytes-read/op  vs base                 │
Compaction/dqlite-4                               1.655Ki ± 77%           2.207Ki ± 33%  +33.33% (p=0.017 n=7)
Create/dqlite-4                                     241.0 ±  0%
Delete/dqlite-4                                   1.159Ki ±  0%
Get/dqlite-4                                      1.132Ki ±  0%           1.132Ki ±  0%        ~ (p=1.000 n=7)
List/dqlite-tiny/all-4                              203.5 ± 13%             204.0 ±  2%        ~ (p=0.691 n=7)
List/dqlite-tiny/pagination-4                       188.9 ±  2%             190.8 ±  2%        ~ (p=0.477 n=7)
List/dqlite-fits-in-page/all-4                    1.231Ki ±  1%           1.232Ki ±  1%        ~ (p=0.737 n=7)
List/dqlite-fits-in-page/pagination-4             1.252Ki ±  5%           1.201Ki ± 10%        ~ (p=0.515 n=7)
List/dqlite-overflows-page/all-4                  6.309Ki ±  2%           6.244Ki ±  2%        ~ (p=0.104 n=7)
List/dqlite-overflows-page/pagination-4           6.811Ki ±  7%           6.756Ki ± 10%        ~ (p=0.805 n=7)
Update/dqlite-4                                     564.9 ±  0%
Create/1-workers/dqlite-4                                                   240.9 ±  0%
Create/2-workers/dqlite-4                                                   241.9 ±  0%
Create/4-workers/dqlite-4                                                   242.0 ±  0%
Create/8-workers/dqlite-4                                                   242.0 ±  0%
Create/16-workers/dqlite-4                                                  242.0 ± 17%
Delete/1-workers/dqlite-4                                                 1.158Ki ±  0%
Delete/2-workers/dqlite-4                                                 1.258Ki ±  0%
Delete/4-workers/dqlite-4                                                 1.311Ki ±  1%
Delete/8-workers/dqlite-4                                                 1.290Ki ±  1%
Delete/16-workers/dqlite-4                                                1.293Ki ±  1%
Update/1-workers/dqlite-4                                                   564.6 ±  0%
Update/2-workers/dqlite-4                                                   668.9 ±  0%
Update/4-workers/dqlite-4                                                   715.7 ±  1%
Update/8-workers/dqlite-4                                                   697.8 ±  1%
Update/16-workers/dqlite-4                                                  700.2 ±  1%
geomean                                             989.3                   773.7         +3.06%               ¹
¹ benchmark set differs from baseline; geomeans may not be comparable

                                        │          Before          │                      After                       │
                                        │ network-bytes-written/op │ network-bytes-written/op  vs base                │
Compaction/dqlite-4                                    4.473 ± 13%                4.691 ±  7%       ~ (p=0.165 n=7)
Create/dqlite-4                                        115.3 ±  2%
Delete/dqlite-4                                        424.3 ±  0%
Get/dqlite-4                                           80.57 ±  0%                80.57 ±  0%       ~ (p=0.698 n=7)
List/dqlite-tiny/all-4                               0.04328 ± 25%              0.04329 ±  4%       ~ (p=0.902 n=7)
List/dqlite-tiny/pagination-4                        0.04600 ±  4%              0.04544 ±  9%       ~ (p=0.535 n=7)
List/dqlite-fits-in-page/all-4                       0.05266 ±  2%              0.05270 ±  2%       ~ (p=0.620 n=7)
List/dqlite-fits-in-page/pagination-4                0.07838 ± 10%              0.07572 ± 19%       ~ (p=0.535 n=7)
List/dqlite-overflows-page/all-4                     0.06659 ±  6%              0.06600 ±  2%  -0.89% (p=0.016 n=7)
List/dqlite-overflows-page/pagination-4               0.1258 ± 17%               0.1113 ± 27%       ~ (p=0.535 n=7)
Update/dqlite-4                                        263.4 ±  0%
Create/1-workers/dqlite-4                                                         114.8 ±  1%
Create/2-workers/dqlite-4                                                         116.8 ±  1%
Create/4-workers/dqlite-4                                                         116.9 ±  1%
Create/8-workers/dqlite-4                                                         117.0 ±  1%
Create/16-workers/dqlite-4                                                        117.3 ± 12%
Delete/1-workers/dqlite-4                                                         423.9 ±  0%
Delete/2-workers/dqlite-4                                                         806.5 ±  1%
Delete/4-workers/dqlite-4                                                        1003.0 ±  2%
Delete/8-workers/dqlite-4                                                         984.0 ±  3%
Delete/16-workers/dqlite-4                                                        990.2 ±  3%
Update/1-workers/dqlite-4                                                         263.6 ±  0%
Update/2-workers/dqlite-4                                                         662.8 ±  1%
Update/4-workers/dqlite-4                                                         828.9 ±  1%
Update/8-workers/dqlite-4                                                         821.6 ±  4%
Update/16-workers/dqlite-4                                                        817.3 ±  2%
geomean                                                1.689                      30.63        -1.61%               ¹
¹ benchmark set differs from baseline; geomeans may not be comparable
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                       41.66µ ± 11%
Compaction/dqlite-4                       44.56µ ±  6%
Create/1-workers/sqlite-4                 1.221m ±  5%
Create/2-workers/sqlite-4                 1.285m ±  7%
Create/4-workers/sqlite-4                 1.276m ±  7%
Create/8-workers/sqlite-4                 1.350m ± 14%
Create/16-workers/sqlite-4                1.591m ± 35%
Create/1-workers/dqlite-4                 1.094m ±  7%
Create/2-workers/dqlite-4                 962.2µ ±  4%
Create/4-workers/dqlite-4                 917.2µ ±  4%
Create/8-workers/dqlite-4                 930.1µ ±  7%
Create/16-workers/dqlite-4                925.6µ ±  4%
Delete/1-workers/sqlite-4                 1.405m ±  4%
Delete/2-workers/sqlite-4                 1.478m ±  7%
Delete/4-workers/sqlite-4                 1.674m ±  6%
Delete/8-workers/sqlite-4                 1.967m ± 16%
Delete/16-workers/sqlite-4                2.473m ± 21%
Delete/1-workers/dqlite-4                 1.328m ±  4%
Delete/2-workers/dqlite-4                 1.198m ±  2%
Delete/4-workers/dqlite-4                 1.186m ±  2%
Delete/8-workers/dqlite-4                 1.180m ±  2%
Delete/16-workers/dqlite-4                1.188m ±  2%
Get/sqlite-4                              277.7µ ±  1%
Get/dqlite-4                              367.4µ ±  1%
List/sqlite-tiny/all-4                    4.582µ ±  2%
List/sqlite-tiny/pagination-4             9.205µ ±  5%
List/sqlite-fits-in-page/all-4            7.718µ ±  4%
List/sqlite-fits-in-page/pagination-4     24.18µ ±  2%
List/sqlite-overflows-page/all-4          18.76µ ±  3%
List/sqlite-overflows-page/pagination-4   49.36µ ±  2%
List/dqlite-tiny/all-4                    2.823µ ±  1%
List/dqlite-tiny/pagination-4             5.980µ ±  2%
List/dqlite-fits-in-page/all-4            6.197µ ±  2%
List/dqlite-fits-in-page/pagination-4     16.85µ ±  6%
List/dqlite-overflows-page/all-4          19.55µ ±  3%
List/dqlite-overflows-page/pagination-4   44.52µ ±  3%
Update/1-workers/sqlite-4                 1.311m ±  7%
Update/2-workers/sqlite-4                 1.455m ±  7%
Update/4-workers/sqlite-4                 1.594m ± 13%
Update/8-workers/sqlite-4                 1.869m ± 16%
Update/16-workers/sqlite-4                2.528m ± 21%
Update/1-workers/dqlite-4                 1.346m ±  1%
Update/2-workers/dqlite-4                 1.243m ±  1%
Update/4-workers/dqlite-4                 1.162m ±  1%
Update/8-workers/dqlite-4                 1.184m ±  3%
Update/16-workers/dqlite-4                1.183m ±  1%
geomean                                   318.2µ

                                        │        After         │
                                        │ page-cache-misses/op │
Compaction/sqlite-4                               0.000 ± 0%
Compaction/dqlite-4                               0.000 ± 0%
Create/1-workers/sqlite-4                         0.000 ± 0%
Create/2-workers/sqlite-4                         0.000 ± 0%
Create/4-workers/sqlite-4                         0.000 ± 0%
Create/8-workers/sqlite-4                         0.000 ± 0%
Create/16-workers/sqlite-4                        0.000 ± 0%
Create/1-workers/dqlite-4                         0.000 ± 0%
Create/2-workers/dqlite-4                         0.000 ± 0%
Create/4-workers/dqlite-4                         0.000 ± 0%
Create/8-workers/dqlite-4                         0.000 ± 0%
Create/16-workers/dqlite-4                        0.000 ± 0%
Delete/1-workers/sqlite-4                         0.000 ± 0%
Delete/2-workers/sqlite-4                         0.000 ± 0%
Delete/4-workers/sqlite-4                         0.000 ± 0%
Delete/8-workers/sqlite-4                         0.000 ± 0%
Delete/16-workers/sqlite-4                        0.000 ± 0%
Delete/1-workers/dqlite-4                         0.000 ± 0%
Delete/2-workers/dqlite-4                         0.000 ± 0%
Delete/4-workers/dqlite-4                         0.000 ± 0%
Delete/8-workers/dqlite-4                         0.000 ± 0%
Delete/16-workers/dqlite-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/1-workers/sqlite-4                         0.000 ± 0%
Update/2-workers/sqlite-4                         0.000 ± 0%
Update/4-workers/sqlite-4                         0.000 ± 0%
Update/8-workers/sqlite-4                         0.000 ± 0%
Update/16-workers/sqlite-4                        0.000 ± 0%
Update/1-workers/dqlite-4                         0.000 ± 0%
Update/2-workers/dqlite-4                         0.000 ± 0%
Update/4-workers/dqlite-4                         0.000 ± 0%
Update/8-workers/dqlite-4                         0.000 ± 0%
Update/16-workers/dqlite-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/1-workers/sqlite-4                         0.000 ± 0%
Create/2-workers/sqlite-4                         0.000 ± 0%
Create/4-workers/sqlite-4                         0.000 ± 0%
Create/8-workers/sqlite-4                         0.000 ± 0%
Create/16-workers/sqlite-4                        0.000 ± 0%
Create/1-workers/dqlite-4                         0.000 ± 0%
Create/2-workers/dqlite-4                         0.000 ± 0%
Create/4-workers/dqlite-4                         0.000 ± 0%
Create/8-workers/dqlite-4                         0.000 ± 0%
Create/16-workers/dqlite-4                        0.000 ± 0%
Delete/1-workers/sqlite-4                         0.000 ± 0%
Delete/2-workers/sqlite-4                         0.000 ± 0%
Delete/4-workers/sqlite-4                         0.000 ± 0%
Delete/8-workers/sqlite-4                         0.000 ± 0%
Delete/16-workers/sqlite-4                        0.000 ± 0%
Delete/1-workers/dqlite-4                         0.000 ± 0%
Delete/2-workers/dqlite-4                         0.000 ± 0%
Delete/4-workers/dqlite-4                         0.000 ± 0%
Delete/8-workers/dqlite-4                         0.000 ± 0%
Delete/16-workers/dqlite-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/1-workers/sqlite-4                         0.000 ± 0%
Update/2-workers/sqlite-4                         0.000 ± 0%
Update/4-workers/sqlite-4                         0.000 ± 0%
Update/8-workers/sqlite-4                         0.000 ± 0%
Update/16-workers/sqlite-4                        0.000 ± 0%
Update/1-workers/dqlite-4                         0.000 ± 0%
Update/2-workers/dqlite-4                         0.000 ± 0%
Update/4-workers/dqlite-4                         0.000 ± 0%
Update/8-workers/dqlite-4                         0.000 ± 0%
Update/16-workers/dqlite-4                        0.000 ± 0%
geomean                                                      ¹
¹ summaries must be >0 to compute geomean

                                        │     After     │
                                        │ page-reads/op │
Compaction/sqlite-4                         12.25 ±  1%
Compaction/dqlite-4                         12.19 ±  2%
Create/1-workers/sqlite-4                   14.04 ±  1%
Create/2-workers/sqlite-4                   13.89 ±  4%
Create/4-workers/sqlite-4                   13.48 ±  3%
Create/8-workers/sqlite-4                   13.10 ±  4%
Create/16-workers/sqlite-4                  12.44 ±  4%
Create/1-workers/dqlite-4                   13.24 ±  2%
Create/2-workers/dqlite-4                   11.02 ±  1%
Create/4-workers/dqlite-4                   11.03 ±  1%
Create/8-workers/dqlite-4                   11.07 ±  1%
Create/16-workers/dqlite-4                  11.11 ±  1%
Delete/1-workers/sqlite-4                   25.12 ±  0%
Delete/2-workers/sqlite-4                   24.31 ±  4%
Delete/4-workers/sqlite-4                   22.99 ±  7%
Delete/8-workers/sqlite-4                   22.14 ±  7%
Delete/16-workers/sqlite-4                  20.31 ±  4%
Delete/1-workers/dqlite-4                   24.19 ±  1%
Delete/2-workers/dqlite-4                   13.36 ±  1%
Delete/4-workers/dqlite-4                   10.16 ±  2%
Delete/8-workers/dqlite-4                   11.31 ±  3%
Delete/16-workers/dqlite-4                  11.22 ±  2%
Get/sqlite-4                                14.95 ±  0%
Get/dqlite-4                                11.95 ±  0%
List/sqlite-tiny/all-4                     192.3m ±  0%
List/sqlite-tiny/pagination-4               1.132 ±  0%
List/sqlite-fits-in-page/all-4             164.6m ±  0%
List/sqlite-fits-in-page/pagination-4      965.5m ±  0%
List/sqlite-overflows-page/all-4           295.7m ± 28%
List/sqlite-overflows-page/pagination-4     2.080 ±  0%
List/dqlite-tiny/all-4                     191.2m ±  0%
List/dqlite-tiny/pagination-4               1.126 ±  3%
List/dqlite-fits-in-page/all-4             163.2m ± 59%
List/dqlite-fits-in-page/pagination-4      954.4m ±  0%
List/dqlite-overflows-page/all-4           182.8m ±  0%
List/dqlite-overflows-page/pagination-4     1.071 ±  3%
Update/1-workers/sqlite-4                   25.82 ±  1%
Update/2-workers/sqlite-4                   22.76 ±  4%
Update/4-workers/sqlite-4                   21.91 ±  4%
Update/8-workers/sqlite-4                   20.49 ±  5%
Update/16-workers/sqlite-4                  19.83 ±  5%
Update/1-workers/dqlite-4                   25.07 ±  1%
Update/2-workers/dqlite-4                   13.85 ±  1%
Update/4-workers/dqlite-4                   10.19 ±  2%
Update/8-workers/dqlite-4                   11.20 ±  1%
Update/16-workers/dqlite-4                  11.23 ±  3%
geomean                                     6.150

                                        │     After      │
                                        │ page-writes/op │
Compaction/sqlite-4                        207.8m ± 0%
Compaction/dqlite-4                        187.3m ± 1%
Create/1-workers/sqlite-4                   5.118 ± 2%
Create/2-workers/sqlite-4                   5.124 ± 1%
Create/4-workers/sqlite-4                   5.130 ± 1%
Create/8-workers/sqlite-4                   5.102 ± 1%
Create/16-workers/sqlite-4                  5.063 ± 1%
Create/1-workers/dqlite-4                   4.243 ± 2%
Create/2-workers/dqlite-4                   4.303 ± 0%
Create/4-workers/dqlite-4                   4.302 ± 0%
Create/8-workers/dqlite-4                   4.298 ± 1%
Create/16-workers/dqlite-4                  4.299 ± 0%
Delete/1-workers/sqlite-4                   5.332 ± 0%
Delete/2-workers/sqlite-4                   5.314 ± 1%
Delete/4-workers/sqlite-4                   5.297 ± 1%
Delete/8-workers/sqlite-4                   5.268 ± 1%
Delete/16-workers/sqlite-4                  5.330 ± 2%
Delete/1-workers/dqlite-4                   4.408 ± 1%
Delete/2-workers/dqlite-4                   4.414 ± 1%
Delete/4-workers/dqlite-4                   4.390 ± 1%
Delete/8-workers/dqlite-4                   4.409 ± 1%
Delete/16-workers/dqlite-4                  4.403 ± 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/1-workers/sqlite-4                   5.180 ± 0%
Update/2-workers/sqlite-4                   5.171 ± 1%
Update/4-workers/sqlite-4                   5.184 ± 1%
Update/8-workers/sqlite-4                   5.192 ± 2%
Update/16-workers/sqlite-4                  5.161 ± 1%
Update/1-workers/dqlite-4                   4.194 ± 0%
Update/2-workers/dqlite-4                   4.228 ± 0%
Update/4-workers/dqlite-4                   4.194 ± 0%
Update/8-workers/dqlite-4                   4.201 ± 1%
Update/16-workers/dqlite-4                  4.243 ± 1%
geomean                                                ¹
¹ summaries must be >0 to compute geomean

                                        │     After      │
                                        │ sec-reading/op │
Compaction/sqlite-4                        122.4µ ±   9%
Compaction/dqlite-4                        34.30µ ±  24%
Create/1-workers/sqlite-4                  82.20µ ± 119%
Create/2-workers/sqlite-4                  45.50µ ± 467%
Create/4-workers/sqlite-4                  68.40µ ± 511%
Create/8-workers/sqlite-4                  65.10µ ± 256%
Create/16-workers/sqlite-4                 38.70µ ±  63%
Create/1-workers/dqlite-4                  8.000µ ± 105%
Create/2-workers/dqlite-4                  14.20µ ±  35%
Create/4-workers/dqlite-4                  10.00µ ±  80%
Create/8-workers/dqlite-4                  12.60µ ±  38%
Create/16-workers/dqlite-4                 10.90µ ±  49%
Delete/1-workers/sqlite-4                  194.4µ ±  11%
Delete/2-workers/sqlite-4                  465.4µ ±  69%
Delete/4-workers/sqlite-4                  1.242m ±  83%
Delete/8-workers/sqlite-4                  2.673m ±  55%
Delete/16-workers/sqlite-4                 6.492m ±  30%
Delete/1-workers/dqlite-4                  52.30µ ±  25%
Delete/2-workers/dqlite-4                  53.40µ ±  23%
Delete/4-workers/dqlite-4                  61.20µ ±  10%
Delete/8-workers/dqlite-4                  56.40µ ±   9%
Delete/16-workers/dqlite-4                 63.20µ ±  14%
Get/sqlite-4                               90.10µ ±   6%
Get/dqlite-4                               33.20µ ±  16%
List/sqlite-tiny/all-4                     14.80µ ±   6%
List/sqlite-tiny/pagination-4              20.10µ ±   7%
List/sqlite-fits-in-page/all-4             18.90µ ±  13%
List/sqlite-fits-in-page/pagination-4      65.60µ ±   4%
List/sqlite-overflows-page/all-4           60.00µ ±  25%
List/sqlite-overflows-page/pagination-4    180.6µ ±   2%
List/dqlite-tiny/all-4                     3.900µ ±  23%
List/dqlite-tiny/pagination-4              9.400µ ±   9%
List/dqlite-fits-in-page/all-4             8.800µ ±  20%
List/dqlite-fits-in-page/pagination-4      26.30µ ±  21%
List/dqlite-overflows-page/all-4           33.60µ ±   2%
List/dqlite-overflows-page/pagination-4    74.50µ ±  12%
Update/1-workers/sqlite-4                  197.2µ ±  17%
Update/2-workers/sqlite-4                  634.9µ ±  49%
Update/4-workers/sqlite-4                  970.2µ ± 106%
Update/8-workers/sqlite-4                  3.191m ±  67%
Update/16-workers/sqlite-4                 6.917m ±  99%
Update/1-workers/dqlite-4                  100.0µ ±  36%
Update/2-workers/dqlite-4                  92.40µ ±  12%
Update/4-workers/dqlite-4                  72.50µ ±  18%
Update/8-workers/dqlite-4                  64.30µ ±  21%
Update/16-workers/dqlite-4                 58.40µ ±   9%
geomean                                    77.60µ

                                        │     After      │
                                        │ sec-writing/op │
Compaction/sqlite-4                       10.70µ ±  7%
Compaction/dqlite-4                       7.300µ ±  8%
Create/1-workers/sqlite-4                 947.9µ ±  7%
Create/2-workers/sqlite-4                 1.845m ± 28%
Create/4-workers/sqlite-4                 3.351m ± 46%
Create/8-workers/sqlite-4                 6.827m ± 24%
Create/16-workers/sqlite-4                13.64m ± 15%
Create/1-workers/dqlite-4                 37.50µ ± 33%
Create/2-workers/dqlite-4                 43.90µ ± 18%
Create/4-workers/dqlite-4                 42.40µ ± 28%
Create/8-workers/dqlite-4                 45.90µ ± 14%
Create/16-workers/dqlite-4                44.40µ ± 14%
Delete/1-workers/sqlite-4                 974.4µ ±  6%
Delete/2-workers/sqlite-4                 1.646m ± 32%
Delete/4-workers/sqlite-4                 3.821m ± 51%
Delete/8-workers/sqlite-4                 8.968m ± 37%
Delete/16-workers/sqlite-4                14.75m ± 56%
Delete/1-workers/dqlite-4                 26.70µ ± 39%
Delete/2-workers/dqlite-4                 29.00µ ± 31%
Delete/4-workers/dqlite-4                 32.80µ ± 31%
Delete/8-workers/dqlite-4                 30.60µ ± 39%
Delete/16-workers/dqlite-4                29.30µ ± 17%
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/1-workers/sqlite-4                 844.2µ ± 11%
Update/2-workers/sqlite-4                 1.717m ± 12%
Update/4-workers/sqlite-4                 3.623m ± 23%
Update/8-workers/sqlite-4                 8.141m ± 23%
Update/16-workers/sqlite-4                15.43m ± 33%
Update/1-workers/dqlite-4                 23.00µ ± 38%
Update/2-workers/dqlite-4                 30.60µ ± 29%
Update/4-workers/dqlite-4                 26.00µ ± 36%
Update/8-workers/dqlite-4                 27.90µ ± 25%
Update/16-workers/dqlite-4                32.70µ ± 40%
geomean                                                ¹
¹ summaries must be >0 to compute geomean

                                        │     After     │
                                        │     B/op      │
Compaction/sqlite-4                        1016.0 ± 57%
Compaction/dqlite-4                       6.042Ki ± 32%
Create/1-workers/sqlite-4                 21.22Ki ±  2%
Create/2-workers/sqlite-4                 21.38Ki ±  3%
Create/4-workers/sqlite-4                 21.38Ki ±  5%
Create/8-workers/sqlite-4                 21.35Ki ±  2%
Create/16-workers/sqlite-4                21.47Ki ±  0%
Create/1-workers/dqlite-4                 20.07Ki ±  0%
Create/2-workers/dqlite-4                 20.04Ki ±  0%
Create/4-workers/dqlite-4                 20.04Ki ±  0%
Create/8-workers/dqlite-4                 20.04Ki ±  0%
Create/16-workers/dqlite-4                20.04Ki ±  5%
Delete/1-workers/sqlite-4                 32.61Ki ±  0%
Delete/2-workers/sqlite-4                 32.67Ki ±  1%
Delete/4-workers/sqlite-4                 32.50Ki ±  3%
Delete/8-workers/sqlite-4                 32.68Ki ±  3%
Delete/16-workers/sqlite-4                32.30Ki ±  4%
Delete/1-workers/dqlite-4                 29.46Ki ±  0%
Delete/2-workers/dqlite-4                 62.88Ki ±  1%
Delete/4-workers/dqlite-4                 88.71Ki ±  2%
Delete/8-workers/dqlite-4                 83.35Ki ±  3%
Delete/16-workers/dqlite-4                83.18Ki ±  2%
Get/sqlite-4                              25.07Ki ±  0%
Get/dqlite-4                              22.88Ki ±  0%
List/sqlite-tiny/all-4                    1.255Ki ±  2%
List/sqlite-tiny/pagination-4             1.816Ki ±  5%
List/sqlite-fits-in-page/all-4            5.038Ki ±  3%
List/sqlite-fits-in-page/pagination-4     10.23Ki ±  0%
List/sqlite-overflows-page/all-4          26.83Ki ±  7%
List/sqlite-overflows-page/pagination-4   46.12Ki ±  0%
List/dqlite-tiny/all-4                      873.0 ±  1%
List/dqlite-tiny/pagination-4               842.0 ±  2%
List/dqlite-fits-in-page/all-4            4.307Ki ±  1%
List/dqlite-fits-in-page/pagination-4     4.290Ki ±  5%
List/dqlite-overflows-page/all-4          21.24Ki ±  1%
List/dqlite-overflows-page/pagination-4   22.51Ki ±  6%
Update/1-workers/sqlite-4                 30.37Ki ±  0%
Update/2-workers/sqlite-4                 30.46Ki ±  4%
Update/4-workers/sqlite-4                 30.41Ki ±  0%
Update/8-workers/sqlite-4                 30.29Ki ±  5%
Update/16-workers/sqlite-4                30.42Ki ±  3%
Update/1-workers/dqlite-4                 27.68Ki ±  0%
Update/2-workers/dqlite-4                 60.80Ki ±  1%
Update/4-workers/dqlite-4                 83.79Ki ±  2%
Update/8-workers/dqlite-4                 81.87Ki ±  3%
Update/16-workers/dqlite-4                81.43Ki ±  1%
geomean                                   18.84Ki

                                        │    After    │
                                        │  allocs/op  │
Compaction/sqlite-4                       39.00 ± 62%
Compaction/dqlite-4                       146.0 ± 33%
Create/1-workers/sqlite-4                 450.0 ±  2%
Create/2-workers/sqlite-4                 454.0 ±  4%
Create/4-workers/sqlite-4                 454.0 ±  7%
Create/8-workers/sqlite-4                 453.0 ±  3%
Create/16-workers/sqlite-4                456.0 ±  1%
Create/1-workers/dqlite-4                 372.0 ±  0%
Create/2-workers/dqlite-4                 372.0 ±  0%
Create/4-workers/dqlite-4                 372.0 ±  0%
Create/8-workers/dqlite-4                 372.0 ±  0%
Create/16-workers/dqlite-4                372.0 ±  7%
Delete/1-workers/sqlite-4                 726.0 ±  0%
Delete/2-workers/sqlite-4                 727.0 ±  2%
Delete/4-workers/sqlite-4                 722.0 ±  4%
Delete/8-workers/sqlite-4                 725.0 ±  3%
Delete/16-workers/sqlite-4                711.0 ±  6%
Delete/1-workers/dqlite-4                 510.0 ±  0%
Delete/2-workers/dqlite-4                 552.0 ±  0%
Delete/4-workers/dqlite-4                 580.0 ±  1%
Delete/8-workers/dqlite-4                 560.0 ±  1%
Delete/16-workers/dqlite-4                562.0 ±  1%
Get/sqlite-4                              563.0 ±  0%
Get/dqlite-4                              407.0 ±  0%
List/sqlite-tiny/all-4                    41.00 ±  2%
List/sqlite-tiny/pagination-4             63.00 ±  5%
List/sqlite-fits-in-page/all-4            46.00 ±  4%
List/sqlite-fits-in-page/pagination-4     93.00 ±  0%
List/sqlite-overflows-page/all-4          57.00 ±  5%
List/sqlite-overflows-page/pagination-4   93.00 ±  0%
List/dqlite-tiny/all-4                    14.00 ±  0%
List/dqlite-tiny/pagination-4             13.00 ±  0%
List/dqlite-fits-in-page/all-4            18.00 ±  0%
List/dqlite-fits-in-page/pagination-4     17.00 ± 12%
List/dqlite-overflows-page/all-4          29.00 ±  3%
List/dqlite-overflows-page/pagination-4   32.00 ±  9%
Update/1-workers/sqlite-4                 670.0 ±  1%
Update/2-workers/sqlite-4                 671.0 ±  5%
Update/4-workers/sqlite-4                 669.0 ±  1%
Update/8-workers/sqlite-4                 662.0 ±  6%
Update/16-workers/sqlite-4                666.0 ±  4%
Update/1-workers/dqlite-4                 492.0 ±  0%
Update/2-workers/dqlite-4                 534.0 ±  0%
Update/4-workers/dqlite-4                 559.0 ±  1%
Update/8-workers/dqlite-4                 543.0 ±  1%
Update/16-workers/dqlite-4                545.0 ±  1%
geomean                                   240.1

                                        │         After         │
                                        │ network-bytes-read/op │
Compaction/dqlite-4                               2.207Ki ± 33%
Create/1-workers/dqlite-4                           240.9 ±  0%
Create/2-workers/dqlite-4                           241.9 ±  0%
Create/4-workers/dqlite-4                           242.0 ±  0%
Create/8-workers/dqlite-4                           242.0 ±  0%
Create/16-workers/dqlite-4                          242.0 ± 17%
Delete/1-workers/dqlite-4                         1.158Ki ±  0%
Delete/2-workers/dqlite-4                         1.258Ki ±  0%
Delete/4-workers/dqlite-4                         1.311Ki ±  1%
Delete/8-workers/dqlite-4                         1.290Ki ±  1%
Delete/16-workers/dqlite-4                        1.293Ki ±  1%
Get/dqlite-4                                      1.132Ki ±  0%
List/dqlite-tiny/all-4                              204.0 ±  2%
List/dqlite-tiny/pagination-4                       190.8 ±  2%
List/dqlite-fits-in-page/all-4                    1.232Ki ±  1%
List/dqlite-fits-in-page/pagination-4             1.201Ki ± 10%
List/dqlite-overflows-page/all-4                  6.244Ki ±  2%
List/dqlite-overflows-page/pagination-4           6.756Ki ± 10%
Update/1-workers/dqlite-4                           564.6 ±  0%
Update/2-workers/dqlite-4                           668.9 ±  0%
Update/4-workers/dqlite-4                           715.7 ±  1%
Update/8-workers/dqlite-4                           697.8 ±  1%
Update/16-workers/dqlite-4                          700.2 ±  1%
geomean                                             773.7

                                        │          After           │
                                        │ network-bytes-written/op │
Compaction/dqlite-4                                    4.691 ±  7%
Create/1-workers/dqlite-4                              114.8 ±  1%
Create/2-workers/dqlite-4                              116.8 ±  1%
Create/4-workers/dqlite-4                              116.9 ±  1%
Create/8-workers/dqlite-4                              117.0 ±  1%
Create/16-workers/dqlite-4                             117.3 ± 12%
Delete/1-workers/dqlite-4                              423.9 ±  0%
Delete/2-workers/dqlite-4                              806.5 ±  1%
Delete/4-workers/dqlite-4                             1003.0 ±  2%
Delete/8-workers/dqlite-4                              984.0 ±  3%
Delete/16-workers/dqlite-4                             990.2 ±  3%
Get/dqlite-4                                           80.57 ±  0%
List/dqlite-tiny/all-4                               0.04329 ±  4%
List/dqlite-tiny/pagination-4                        0.04544 ±  9%
List/dqlite-fits-in-page/all-4                       0.05270 ±  2%
List/dqlite-fits-in-page/pagination-4                0.07572 ± 19%
List/dqlite-overflows-page/all-4                     0.06600 ±  2%
List/dqlite-overflows-page/pagination-4               0.1113 ± 27%
Update/1-workers/dqlite-4                              263.6 ±  0%
Update/2-workers/dqlite-4                              662.8 ±  1%
Update/4-workers/dqlite-4                              828.9 ±  1%
Update/8-workers/dqlite-4                              821.6 ±  4%
Update/16-workers/dqlite-4                             817.3 ±  2%
geomean                                                30.63

Copy link
Contributor

@HomayoonAlimohammadi HomayoonAlimohammadi left a comment

Choose a reason for hiding this comment

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

Thanks a lot @marco6! I don't know anything about k8s dqlite, so please treat my minor comments as probably-not-so-important-and-just-out-of-curiosity

test/create_test.go Outdated Show resolved Hide resolved
@louiseschmidtgen
Copy link
Contributor

We are limited in the output of the benchmark test if I remember correctly? We can't combine the results of say the create run, right?

@louiseschmidtgen louiseschmidtgen mentioned this pull request Sep 10, 2024
@marco6
Copy link
Collaborator Author

marco6 commented Sep 10, 2024

We are limited in the output of the benchmark test if I remember correctly? We can't combine the results of say the create run, right?

As discussed on MM, we decided to change the naming of the tests as it was quite confusing.

We are keeping them separated so that we can see how it behaves under different kind of loads.

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!
I've got one more question more out of curiosity.

test/create_test.go Show resolved Hide resolved
test/create_test.go Show resolved Hide resolved
test/update_test.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.

Why is our published benchmark test showing some gaps in the Before column in some places?

@marco6
Copy link
Collaborator Author

marco6 commented Sep 10, 2024

Why is our published benchmark test showing some gaps in the Before column in some places?

Because the matching is done on the name. The master branch only has:

Create/sqlite-4
Create/dqlite-4
Delete/sqlite-4
Delete/dqlite-4
Update/sqlite-4
Update/dqlite-4

While the new set has none of those and new ones. As such, they cannot be compared.

This is also the reason why #170 needs to be rebased once this is in (a merge would not work from the PoV of benchmarking).

@marco6 marco6 merged commit 5b20dbb into master Sep 12, 2024
7 checks passed
@marco6 marco6 deleted the concurrent-testing branch September 12, 2024 11:26
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.

3 participants