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 startTmpBeaconDb util #4281

Merged
merged 1 commit into from
Jul 12, 2022
Merged

Add startTmpBeaconDb util #4281

merged 1 commit into from
Jul 12, 2022

Conversation

dapplion
Copy link
Contributor

Motivation

From #3989, not having a consistent test db init fn created hard to debug issues

Description

Add startTmpBeaconDb util:

  • De-duplicate declaration of gitignore path .tmpdb.
  • Ensure db is removed before starting

@dapplion dapplion requested a review from a team as a code owner July 11, 2022 20:13
@github-actions
Copy link
Contributor

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: f130479 Previous: 2b16141 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 2.0358 ms/op 2.6927 ms/op 0.76
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 70.369 us/op 92.340 us/op 0.76
BLS verify - blst-native 1.8546 ms/op 2.8921 ms/op 0.64
BLS verifyMultipleSignatures 3 - blst-native 3.8078 ms/op 5.9057 ms/op 0.64
BLS verifyMultipleSignatures 8 - blst-native 8.1825 ms/op 13.004 ms/op 0.63
BLS verifyMultipleSignatures 32 - blst-native 29.684 ms/op 46.398 ms/op 0.64
BLS aggregatePubkeys 32 - blst-native 39.618 us/op 63.077 us/op 0.63
BLS aggregatePubkeys 128 - blst-native 152.45 us/op 242.45 us/op 0.63
getAttestationsForBlock 43.324 ms/op 57.367 ms/op 0.76
isKnown best case - 1 super set check 452.00 ns/op 549.00 ns/op 0.82
isKnown normal case - 2 super set checks 444.00 ns/op 485.00 ns/op 0.92
isKnown worse case - 16 super set checks 449.00 ns/op 500.00 ns/op 0.90
CheckpointStateCache - add get delete 9.9780 us/op 14.336 us/op 0.70
validate gossip signedAggregateAndProof - struct 4.2701 ms/op 6.5086 ms/op 0.66
validate gossip attestation - struct 2.0239 ms/op 3.0918 ms/op 0.65
altair verifyImport mainnet_s3766816:31 6.3037 s/op 9.0404 s/op 0.70
pickEth1Vote - no votes 2.0698 ms/op 2.6472 ms/op 0.78
pickEth1Vote - max votes 23.725 ms/op 34.875 ms/op 0.68
pickEth1Vote - Eth1Data hashTreeRoot value x2048 11.526 ms/op 16.601 ms/op 0.69
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 23.287 ms/op 27.557 ms/op 0.85
pickEth1Vote - Eth1Data fastSerialize value x2048 1.5367 ms/op 2.0762 ms/op 0.74
pickEth1Vote - Eth1Data fastSerialize tree x2048 12.088 ms/op 22.800 ms/op 0.53
bytes32 toHexString 1000.0 ns/op 1.3820 us/op 0.72
bytes32 Buffer.toString(hex) 672.00 ns/op 913.00 ns/op 0.74
bytes32 Buffer.toString(hex) from Uint8Array 835.00 ns/op 1.1650 us/op 0.72
bytes32 Buffer.toString(hex) + 0x 669.00 ns/op 920.00 ns/op 0.73
Object access 1 prop 0.32400 ns/op 0.48100 ns/op 0.67
Map access 1 prop 0.29200 ns/op 0.35500 ns/op 0.82
Object get x1000 17.570 ns/op 16.596 ns/op 1.06
Map get x1000 1.0490 ns/op 1.0610 ns/op 0.99
Object set x1000 112.15 ns/op 124.92 ns/op 0.90
Map set x1000 64.849 ns/op 88.787 ns/op 0.73
Return object 10000 times 0.37540 ns/op 0.42820 ns/op 0.88
Throw Error 10000 times 5.8820 us/op 7.1103 us/op 0.83
enrSubnets - fastDeserialize 64 bits 2.5430 us/op 3.3870 us/op 0.75
enrSubnets - ssz BitVector 64 bits 726.00 ns/op 954.00 ns/op 0.76
enrSubnets - fastDeserialize 4 bits 360.00 ns/op 493.00 ns/op 0.73
enrSubnets - ssz BitVector 4 bits 716.00 ns/op 931.00 ns/op 0.77
prioritizePeers score -10:0 att 32-0.1 sync 2-0 88.861 us/op 119.55 us/op 0.74
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 121.89 us/op 153.73 us/op 0.79
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 199.04 us/op 297.21 us/op 0.67
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 420.37 us/op 652.96 us/op 0.64
prioritizePeers score 0:0 att 64-1 sync 4-1 456.42 us/op 630.66 us/op 0.72
RateTracker 1000000 limit, 1 obj count per request 178.97 ns/op 229.94 ns/op 0.78
RateTracker 1000000 limit, 2 obj count per request 139.08 ns/op 171.57 ns/op 0.81
RateTracker 1000000 limit, 4 obj count per request 120.04 ns/op 141.84 ns/op 0.85
RateTracker 1000000 limit, 8 obj count per request 111.58 ns/op 128.80 ns/op 0.87
RateTracker with prune 3.8430 us/op 6.4260 us/op 0.60
array of 16000 items push then shift 3.1757 us/op 5.5906 us/op 0.57
LinkedList of 16000 items push then shift 22.733 ns/op 28.941 ns/op 0.79
array of 16000 items push then pop 227.24 ns/op 278.10 ns/op 0.82
LinkedList of 16000 items push then pop 20.406 ns/op 24.327 ns/op 0.84
array of 24000 items push then shift 4.3374 us/op 8.0868 us/op 0.54
LinkedList of 24000 items push then shift 23.791 ns/op 27.138 ns/op 0.88
array of 24000 items push then pop 188.24 ns/op 249.15 ns/op 0.76
LinkedList of 24000 items push then pop 20.200 ns/op 27.446 ns/op 0.74
intersect bitArray bitLen 8 11.716 ns/op 13.257 ns/op 0.88
intersect array and set length 8 152.27 ns/op 227.10 ns/op 0.67
intersect bitArray bitLen 128 71.827 ns/op 72.451 ns/op 0.99
intersect array and set length 128 2.1452 us/op 2.6163 us/op 0.82
pass gossip attestations to forkchoice per slot 5.4652 ms/op 4.8020 ms/op 1.14
computeDeltas 3.6050 ms/op 4.2541 ms/op 0.85
computeProposerBoostScoreFromBalances 907.46 us/op 938.58 us/op 0.97
altair processAttestation - 250000 vs - 7PWei normalcase 3.8409 ms/op 5.8939 ms/op 0.65
altair processAttestation - 250000 vs - 7PWei worstcase 5.6155 ms/op 8.6438 ms/op 0.65
altair processAttestation - setStatus - 1/6 committees join 207.05 us/op 258.74 us/op 0.80
altair processAttestation - setStatus - 1/3 committees join 397.84 us/op 487.92 us/op 0.82
altair processAttestation - setStatus - 1/2 committees join 553.79 us/op 752.26 us/op 0.74
altair processAttestation - setStatus - 2/3 committees join 718.71 us/op 881.30 us/op 0.82
altair processAttestation - setStatus - 4/5 committees join 999.95 us/op 1.2678 ms/op 0.79
altair processAttestation - setStatus - 100% committees join 1.1839 ms/op 1.5109 ms/op 0.78
altair processBlock - 250000 vs - 7PWei normalcase 26.593 ms/op 32.677 ms/op 0.81
altair processBlock - 250000 vs - 7PWei normalcase hashState 34.202 ms/op 46.598 ms/op 0.73
altair processBlock - 250000 vs - 7PWei worstcase 74.897 ms/op 114.26 ms/op 0.66
altair processBlock - 250000 vs - 7PWei worstcase hashState 104.53 ms/op 133.49 ms/op 0.78
phase0 processBlock - 250000 vs - 7PWei normalcase 3.2600 ms/op 5.2536 ms/op 0.62
phase0 processBlock - 250000 vs - 7PWei worstcase 44.819 ms/op 68.786 ms/op 0.65
altair processEth1Data - 250000 vs - 7PWei normalcase 746.88 us/op 1.1473 ms/op 0.65
Tree 40 250000 create 749.78 ms/op 1.2530 s/op 0.60
Tree 40 250000 get(125000) 293.73 ns/op 345.04 ns/op 0.85
Tree 40 250000 set(125000) 2.3047 us/op 4.6165 us/op 0.50
Tree 40 250000 toArray() 31.082 ms/op 37.139 ms/op 0.84
Tree 40 250000 iterate all - toArray() + loop 31.814 ms/op 35.982 ms/op 0.88
Tree 40 250000 iterate all - get(i) 109.23 ms/op 139.05 ms/op 0.79
MutableVector 250000 create 14.944 ms/op 18.027 ms/op 0.83
MutableVector 250000 get(125000) 14.807 ns/op 15.385 ns/op 0.96
MutableVector 250000 set(125000) 580.24 ns/op 1.0908 us/op 0.53
MutableVector 250000 toArray() 6.5029 ms/op 8.7551 ms/op 0.74
MutableVector 250000 iterate all - toArray() + loop 6.5783 ms/op 7.8069 ms/op 0.84
MutableVector 250000 iterate all - get(i) 3.2761 ms/op 3.6000 ms/op 0.91
Array 250000 create 6.2559 ms/op 6.8400 ms/op 0.91
Array 250000 clone - spread 3.4014 ms/op 3.2960 ms/op 1.03
Array 250000 get(125000) 1.4950 ns/op 1.4290 ns/op 1.05
Array 250000 set(125000) 1.4910 ns/op 1.6050 ns/op 0.93
Array 250000 iterate all - loop 168.00 us/op 152.19 us/op 1.10
effectiveBalanceIncrements clone Uint8Array 300000 83.506 us/op 105.47 us/op 0.79
effectiveBalanceIncrements clone MutableVector 300000 1.1330 us/op 1.0170 us/op 1.11
effectiveBalanceIncrements rw all Uint8Array 300000 252.50 us/op 308.58 us/op 0.82
effectiveBalanceIncrements rw all MutableVector 300000 188.82 ms/op 262.22 ms/op 0.72
phase0 afterProcessEpoch - 250000 vs - 7PWei 188.37 ms/op 217.18 ms/op 0.87
phase0 beforeProcessEpoch - 250000 vs - 7PWei 72.934 ms/op 81.365 ms/op 0.90
altair processEpoch - mainnet_e81889 577.20 ms/op 699.78 ms/op 0.82
mainnet_e81889 - altair beforeProcessEpoch 143.12 ms/op 169.33 ms/op 0.85
mainnet_e81889 - altair processJustificationAndFinalization 33.420 us/op 78.045 us/op 0.43
mainnet_e81889 - altair processInactivityUpdates 10.148 ms/op 11.875 ms/op 0.85
mainnet_e81889 - altair processRewardsAndPenalties 89.481 ms/op 110.27 ms/op 0.81
mainnet_e81889 - altair processRegistryUpdates 4.5800 us/op 17.597 us/op 0.26
mainnet_e81889 - altair processSlashings 1.5390 us/op 4.4220 us/op 0.35
mainnet_e81889 - altair processEth1DataReset 1.5870 us/op 5.0450 us/op 0.31
mainnet_e81889 - altair processEffectiveBalanceUpdates 2.4482 ms/op 2.7828 ms/op 0.88
mainnet_e81889 - altair processSlashingsReset 8.2710 us/op 22.576 us/op 0.37
mainnet_e81889 - altair processRandaoMixesReset 8.6500 us/op 26.856 us/op 0.32
mainnet_e81889 - altair processHistoricalRootsUpdate 1.3160 us/op 4.6000 us/op 0.29
mainnet_e81889 - altair processParticipationFlagUpdates 4.2160 us/op 17.685 us/op 0.24
mainnet_e81889 - altair processSyncCommitteeUpdates 2.0510 us/op 4.1230 us/op 0.50
mainnet_e81889 - altair afterProcessEpoch 190.60 ms/op 235.89 ms/op 0.81
phase0 processEpoch - mainnet_e58758 510.83 ms/op 676.76 ms/op 0.75
mainnet_e58758 - phase0 beforeProcessEpoch 216.28 ms/op 311.10 ms/op 0.70
mainnet_e58758 - phase0 processJustificationAndFinalization 20.292 us/op 74.300 us/op 0.27
mainnet_e58758 - phase0 processRewardsAndPenalties 140.42 ms/op 155.45 ms/op 0.90
mainnet_e58758 - phase0 processRegistryUpdates 10.167 us/op 36.859 us/op 0.28
mainnet_e58758 - phase0 processSlashings 722.00 ns/op 3.8290 us/op 0.19
mainnet_e58758 - phase0 processEth1DataReset 819.00 ns/op 4.2580 us/op 0.19
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 2.0189 ms/op 2.8730 ms/op 0.70
mainnet_e58758 - phase0 processSlashingsReset 5.1510 us/op 19.833 us/op 0.26
mainnet_e58758 - phase0 processRandaoMixesReset 5.8640 us/op 28.064 us/op 0.21
mainnet_e58758 - phase0 processHistoricalRootsUpdate 959.00 ns/op 4.8310 us/op 0.20
mainnet_e58758 - phase0 processParticipationRecordUpdates 4.2870 us/op 28.581 us/op 0.15
mainnet_e58758 - phase0 afterProcessEpoch 157.38 ms/op 191.61 ms/op 0.82
phase0 processEffectiveBalanceUpdates - 250000 normalcase 2.7279 ms/op 2.6036 ms/op 1.05
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 2.3380 ms/op 2.9278 ms/op 0.80
altair processInactivityUpdates - 250000 normalcase 39.619 ms/op 52.809 ms/op 0.75
altair processInactivityUpdates - 250000 worstcase 46.671 ms/op 49.990 ms/op 0.93
phase0 processRegistryUpdates - 250000 normalcase 8.8420 us/op 29.115 us/op 0.30
phase0 processRegistryUpdates - 250000 badcase_full_deposits 405.49 us/op 628.66 us/op 0.65
phase0 processRegistryUpdates - 250000 worstcase 0.5 209.65 ms/op 246.51 ms/op 0.85
altair processRewardsAndPenalties - 250000 normalcase 122.21 ms/op 104.44 ms/op 1.17
altair processRewardsAndPenalties - 250000 worstcase 87.190 ms/op 155.83 ms/op 0.56
phase0 getAttestationDeltas - 250000 normalcase 13.322 ms/op 15.235 ms/op 0.87
phase0 getAttestationDeltas - 250000 worstcase 13.312 ms/op 15.634 ms/op 0.85
phase0 processSlashings - 250000 worstcase 5.3536 ms/op 7.1838 ms/op 0.75
altair processSyncCommitteeUpdates - 250000 279.60 ms/op 370.06 ms/op 0.76
BeaconState.hashTreeRoot - No change 477.00 ns/op 677.00 ns/op 0.70
BeaconState.hashTreeRoot - 1 full validator 57.169 us/op 82.703 us/op 0.69
BeaconState.hashTreeRoot - 32 full validator 541.71 us/op 794.58 us/op 0.68
BeaconState.hashTreeRoot - 512 full validator 6.0706 ms/op 8.8024 ms/op 0.69
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 68.309 us/op 104.95 us/op 0.65
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.0054 ms/op 1.5300 ms/op 0.66
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 12.576 ms/op 17.870 ms/op 0.70
BeaconState.hashTreeRoot - 1 balances 53.966 us/op 79.018 us/op 0.68
BeaconState.hashTreeRoot - 32 balances 490.94 us/op 706.77 us/op 0.69
BeaconState.hashTreeRoot - 512 balances 4.5030 ms/op 6.0678 ms/op 0.74
BeaconState.hashTreeRoot - 250000 balances 90.999 ms/op 112.51 ms/op 0.81
aggregationBits - 2048 els - zipIndexesInBitList 26.721 us/op 38.787 us/op 0.69
regular array get 100000 times 67.369 us/op 59.752 us/op 1.13
wrappedArray get 100000 times 67.422 us/op 58.595 us/op 1.15
arrayWithProxy get 100000 times 28.630 ms/op 36.920 ms/op 0.78
ssz.Root.equals 453.00 ns/op 634.00 ns/op 0.71
byteArrayEquals 441.00 ns/op 615.00 ns/op 0.72
shuffle list - 16384 els 10.905 ms/op 13.311 ms/op 0.82
shuffle list - 250000 els 162.12 ms/op 191.26 ms/op 0.85
processSlot - 1 slots 11.751 us/op 18.105 us/op 0.65
processSlot - 32 slots 1.6598 ms/op 2.5384 ms/op 0.65
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 394.34 us/op 633.71 us/op 0.62
getCommitteeAssignments - req 1 vs - 250000 vc 5.2714 ms/op 5.6878 ms/op 0.93
getCommitteeAssignments - req 100 vs - 250000 vc 7.3188 ms/op 8.3168 ms/op 0.88
getCommitteeAssignments - req 1000 vs - 250000 vc 7.7435 ms/op 8.7955 ms/op 0.88
computeProposers - vc 250000 18.000 ms/op 21.480 ms/op 0.84
computeEpochShuffling - vc 250000 165.45 ms/op 205.26 ms/op 0.81
getNextSyncCommittee - vc 250000 269.43 ms/op 360.95 ms/op 0.75

by benchmarkbot/action

@wemeetagain wemeetagain merged commit 6ed5ae0 into unstable Jul 12, 2022
@wemeetagain wemeetagain deleted the dapplion/startTmpBeaconDb branch July 12, 2022 01:59
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