Skip to content

Comments

[WIP] commitlog: Basic write throughput benchmarks#3838

Draft
kim wants to merge 28 commits intomasterfrom
kim/commitlog/bench
Draft

[WIP] commitlog: Basic write throughput benchmarks#3838
kim wants to merge 28 commits intomasterfrom
kim/commitlog/bench

Conversation

@kim
Copy link
Contributor

@kim kim commented Dec 8, 2025

No description provided.

kim added 28 commits December 8, 2025 14:37
This moves the following responsibilities to the datastore:

- maintenance of the transaction offset
- deciding how many transactions are in a commit
Allowing to restore `Committed` return
We don't really need batched transactions at the moment, so avoid the
boxed array allocation.

Durability::append_tx takes a `Transaction`, though, requiring the
offset to be supplied by the datastore.
Old API:

baseline/n=1000 tx/commit=1 fsync=32
                        time:   [65.266 ms 66.570 ms 68.001 ms]
                        thrpt:  [14.706 Kelem/s 15.022 Kelem/s 15.322 Kelem/s]
                 change:
                        time:   [+0.2793% +3.4722% +7.2653%] (p = 0.07 > 0.05)
                        thrpt:  [-6.7732% -3.3556% -0.2785%]
                        No change in performance detected.

large payload/n=1000 tx/commit=1 fsync=32
                        time:   [79.236 ms 82.656 ms 86.054 ms]
                        thrpt:  [11.621 Kelem/s 12.098 Kelem/s 12.621 Kelem/s]
                 change:
                        time:   [-9.3387% -3.0356% +3.4453%] (p = 0.39 > 0.05)
                        thrpt:  [-3.3305% +3.1306% +10.301%]
                        No change in performance detected.

mixed payloads/n=1000 tx/commit=1 fsync=32
                        time:   [58.803 ms 59.423 ms 60.213 ms]
                        thrpt:  [16.608 Kelem/s 16.829 Kelem/s 17.006 Kelem/s]
                 change:
                        time:   [-10.430% -6.5854% -3.3764%] (p = 0.00 < 0.05)
                        thrpt:  [+3.4944% +7.0497% +11.645%]
                        Performance has improved.
Found 1 outliers among 10 measurements (10.00%)
  1 (10.00%) high mild

mixed payloads with batching/n=1000 tx/commit=16 fsync=32
                        time:   [52.255 ms 53.006 ms 53.870 ms]
                        thrpt:  [18.563 Kelem/s 18.866 Kelem/s 19.137 Kelem/s]
                 change:
                        time:   [-1.9957% +0.2520% +2.6380%] (p = 0.83 > 0.05)
                        thrpt:  [-2.5702% -0.2514% +2.0364%]
                        No change in performance detected.


New API:


baseline/n=1000 tx/commit=1 fsync=32
                        time:   [47.657 ms 47.991 ms 48.413 ms]
                        thrpt:  [20.655 Kelem/s 20.837 Kelem/s 20.983 Kelem/s]
                 change:
                        time:   [-1.3528% +0.0234% +1.4079%] (p = 0.97 > 0.05)
                        thrpt:  [-1.3884% -0.0234% +1.3714%]
                        No change in performance detected.
Found 1 outliers among 10 measurements (10.00%)
  1 (10.00%) high severe

large payload/n=1000 tx/commit=1 fsync=32
                        time:   [90.199 ms 92.370 ms 94.611 ms]
                        thrpt:  [10.570 Kelem/s 10.826 Kelem/s 11.087 Kelem/s]
                 change:
                        time:   [-2.1623% +0.6369% +3.5718%] (p = 0.69 > 0.05)
                        thrpt:  [-3.4487% -0.6329% +2.2101%]
                        No change in performance detected.

mixed payloads/n=1000 tx/commit=1 fsync=32
                        time:   [51.011 ms 51.733 ms 52.611 ms]
                        thrpt:  [19.008 Kelem/s 19.330 Kelem/s 19.604 Kelem/s]
                 change:
                        time:   [-2.7205% -1.0955% +0.7716%] (p = 0.26 > 0.05)
                        thrpt:  [-0.7656% +1.1076% +2.7966%]
                        No change in performance detected.
Found 2 outliers among 10 measurements (20.00%)
  2 (20.00%) high mild

mixed payloads with batching/n=1000 tx/commit=16 fsync=32
                        time:   [85.693 ms 86.303 ms 86.920 ms]
                        thrpt:  [11.505 Kelem/s 11.587 Kelem/s 11.670 Kelem/s]
                 change:
                        time:   [-2.1417% -1.1554% -0.2178%] (p = 0.05 < 0.05)
                        thrpt:  [+0.2183% +1.1689% +2.1886%]
                        Change within noise threshold.
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.

1 participant