You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This file contains 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
Baseline on my machine 25.703936052ms confirmation time
after disabling state event persistence -> 26.733588689ms (nothing changed)
after disabling API server output persistence -> 25.833866523ms (nothing changed)
after disabling network message persistence -> 0.450605626ms 😮
I dove deeper and
only disabled the network message persistence (full) -> still 0.732717483ms
only disabled network message persistence (keep acks) -> 26.061189185ms
So save ackPersistence acks, which uses writeBinaryFileDurableAtomic is the sloth here. Because if putting everything back and only using writeBinaryFile we get -> 0.889962229ms.
Sizes and execution budgets for Hydra protocol transactions. Note that unlisted parameters are currently using arbitrary values and results are not fully deterministic and comparable to previous runs.
The minting policy hash is only usable for comparison. As the script is parameterized, the actual script is unique per Head.
Cost of Init Transaction
Parties
Tx size
% max Mem
% max CPU
Min fee ₳
1
4819
6.02
2.37
0.43
2
5019
7.23
2.84
0.45
3
5222
8.80
3.46
0.48
5
5624
11.39
4.48
0.52
10
6628
18.61
7.33
0.65
58
16278
85.85
33.85
1.80
Cost of Commit Transaction
This is using ada-only outputs for better comparability.
UTxO
Tx size
% max Mem
% max CPU
Min fee ₳
1
559
9.69
3.82
0.28
2
747
12.48
5.10
0.32
3
937
15.33
6.40
0.36
5
1310
21.26
9.09
0.45
10
2243
37.35
16.27
0.67
25
5054
96.42
41.75
1.45
Cost of CollectCom Transaction
Parties
UTxO (bytes)
Tx size
% max Mem
% max CPU
Min fee ₳
1
57
544
14.55
5.82
0.33
2
113
654
23.06
9.32
0.43
3
170
764
33.58
13.68
0.55
4
228
874
44.65
18.36
0.68
5
283
984
59.39
24.50
0.85
6
338
1099
72.14
30.01
1.00
7
393
1205
86.96
36.39
1.17
Cost of Close Transaction
Parties
Tx size
% max Mem
% max CPU
Min fee ₳
1
590
8.26
4.58
0.28
2
747
8.97
5.66
0.30
3
857
9.63
6.69
0.31
5
1164
11.27
9.07
0.36
10
1258
13.50
7.30
0.37
50
8030
49.46
62.57
1.35
Cost of Contest Transaction
Parties
Tx size
% max Mem
% max CPU
Min fee ₳
1
621
8.60
4.71
0.28
2
831
9.74
6.14
0.31
3
886
10.05
6.86
0.32
5
1106
11.10
8.66
0.35
10
2006
16.39
15.41
0.48
50
8077
50.58
63.20
1.37
Cost of Abort Transaction
Some variation because of random mixture of still initial and already committed outputs.
Parties
Tx size
% max Mem
% max CPU
Min fee ₳
1
4686
17.09
7.39
0.55
2
4785
24.63
10.60
0.64
3
4970
42.40
18.61
0.85
4
5027
52.29
22.81
0.96
5
5068
68.83
29.99
1.15
Cost of FanOut Transaction
Involves spending head output and burning head tokens. Uses ada-only UTxO for better comparability.
Parties
UTxO
UTxO (bytes)
Tx size
% max Mem
% max CPU
Min fee ₳
5
0
0
4651
7.61
3.18
0.44
5
1
56
4685
8.55
3.80
0.45
5
5
285
4821
13.58
6.83
0.52
5
10
569
4990
19.55
10.48
0.60
5
20
1139
5331
30.66
17.43
0.76
5
30
1706
5670
42.40
24.66
0.92
5
40
2276
6009
53.72
31.71
1.08
5
50
2848
6351
65.47
38.94
1.24
5
79
4500
7336
98.76
59.59
1.70
End-To-End Benchmark Results
This page is intended to collect the latest end-to-end benchmarks results produced by Hydra's Continuous Integration system from the latest master code.
Please take those results with a grain of salt as they are currently produced from very limited cloud VMs and not controlled hardware. Instead of focusing on the absolute results, the emphasis should be on relative results, eg. how the timings for a scenario evolve as the code changes.
Closing this PR as we are not merging this. Make sure to consider this in case we revisit persistence of any network state for reliable broadcasts. Relevant issues: #1417 and #1505
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.
Experiment of disabling all our persistence.
Baseline on my machine
25.703936052ms
confirmation time26.733588689ms
(nothing changed)25.833866523ms
(nothing changed)0.450605626ms
😮I dove deeper and
0.732717483ms
26.061189185ms
So
save ackPersistence acks
, which useswriteBinaryFileDurableAtomic
is the sloth here. Because if putting everything back and only usingwriteBinaryFile
we get ->0.889962229ms
.Quite obvious in hindsight.
Obviously, don't merge this.