[WIP] commitlog: Basic write throughput benchmarks#3838
Draft
Conversation
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.