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

chore: revert async aggregate with randomness #7218

Open
wants to merge 1 commit into
base: unstable
Choose a base branch
from

Conversation

matthewkeil
Copy link
Member

Motivation

Change is choking network thread when —subscribeAllSubnets flag is applied. Need to further investigate that issue so reverting for 1.23 and will reapply for 1.24 once network issue is resolved.

@matthewkeil matthewkeil added the status-do-not-merge Merging this issue will break the build. Do not merge! label Nov 6, 2024
@matthewkeil matthewkeil requested a review from a team as a code owner November 6, 2024 10:08
@matthewkeil matthewkeil changed the title chore;revert async aggregate with randomness chore: revert async aggregate with randomness Nov 6, 2024
@matthewkeil matthewkeil force-pushed the mkeil/revert-async-aggregate-with-randomness branch from afaea97 to 6e1e282 Compare November 6, 2024 10:12
@matthewkeil matthewkeil force-pushed the mkeil/revert-async-aggregate-with-randomness branch from 6e1e282 to 807a271 Compare November 6, 2024 10:15
Copy link

codecov bot commented Nov 6, 2024

Codecov Report

Attention: Patch coverage is 0% with 5 lines in your changes missing coverage. Please review.

Project coverage is 49.09%. Comparing base (2e5265b) to head (807a271).

Additional details and impacted files
@@             Coverage Diff              @@
##           unstable    #7218      +/-   ##
============================================
- Coverage     49.10%   49.09%   -0.01%     
============================================
  Files           600      600              
  Lines         40218    40223       +5     
  Branches       2108     2104       -4     
============================================
- Hits          19748    19747       -1     
- Misses        20432    20438       +6     
  Partials         38       38              

Copy link
Contributor

github-actions bot commented Nov 6, 2024

⚠️ Performance Alert ⚠️

Possible performance regression was detected for some benchmarks.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold.

Benchmark suite Current: 49bb08c Previous: 2e5265b Ratio
altair processInactivityUpdates - 250000 worstcase 46.542 ms/op 14.474 ms/op 3.22
altair processRewardsAndPenalties - 250000 normalcase 85.042 ms/op 27.551 ms/op 3.09
Buffer.compare 123687377 20.033 ms/op 6.4598 ms/op 3.10
Full benchmark results
Benchmark suite Current: 49bb08c Previous: 2e5265b Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 2.4192 ms/op 1.9106 ms/op 1.27
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 77.972 us/op 45.485 us/op 1.71
BLS verify - blst 894.52 us/op 705.97 us/op 1.27
BLS verifyMultipleSignatures 3 - blst 1.5556 ms/op 1.1527 ms/op 1.35
BLS verifyMultipleSignatures 8 - blst 2.1090 ms/op 1.6375 ms/op 1.29
BLS verifyMultipleSignatures 32 - blst 6.9212 ms/op 4.7806 ms/op 1.45
BLS verifyMultipleSignatures 64 - blst 9.7224 ms/op 8.9230 ms/op 1.09
BLS verifyMultipleSignatures 128 - blst 21.502 ms/op 17.000 ms/op 1.26
BLS deserializing 10000 signatures 744.42 ms/op 674.17 ms/op 1.10
BLS deserializing 100000 signatures 7.3964 s/op 6.7303 s/op 1.10
BLS verifyMultipleSignatures - same message - 3 - blst 1.1906 ms/op 872.35 us/op 1.36
BLS verifyMultipleSignatures - same message - 8 - blst 1.2614 ms/op 1.0108 ms/op 1.25
BLS verifyMultipleSignatures - same message - 32 - blst 1.9472 ms/op 1.6781 ms/op 1.16
BLS verifyMultipleSignatures - same message - 64 - blst 3.0032 ms/op 2.5408 ms/op 1.18
BLS verifyMultipleSignatures - same message - 128 - blst 4.8151 ms/op 4.2463 ms/op 1.13
BLS aggregatePubkeys 32 - blst 22.228 us/op 19.073 us/op 1.17
BLS aggregatePubkeys 128 - blst 80.760 us/op 68.246 us/op 1.18
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 97.882 ms/op 63.527 ms/op 1.54
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 59.816 ms/op 47.301 ms/op 1.26
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 43.519 ms/op 36.716 ms/op 1.19
getSlashingsAndExits - default max 105.28 us/op 86.584 us/op 1.22
getSlashingsAndExits - 2k 414.43 us/op 256.36 us/op 1.62
proposeBlockBody type=full, size=empty 7.8661 ms/op 5.7276 ms/op 1.37
isKnown best case - 1 super set check 578.00 ns/op 273.00 ns/op 2.12
isKnown normal case - 2 super set checks 587.00 ns/op 267.00 ns/op 2.20
isKnown worse case - 16 super set checks 482.00 ns/op 271.00 ns/op 1.78
InMemoryCheckpointStateCache - add get delete 3.6000 us/op 2.9680 us/op 1.21
updateUnfinalizedPubkeys - updating 10 pubkeys 1.2635 ms/op 787.66 us/op 1.60
updateUnfinalizedPubkeys - updating 100 pubkeys 4.2305 ms/op 3.3386 ms/op 1.27
updateUnfinalizedPubkeys - updating 1000 pubkeys 63.313 ms/op 50.318 ms/op 1.26
validate api signedAggregateAndProof - struct 1.6296 ms/op 1.3548 ms/op 1.20
validate gossip signedAggregateAndProof - struct 1.6062 ms/op 1.3324 ms/op 1.21
batch validate gossip attestation - vc 640000 - chunk 32 141.70 us/op 120.77 us/op 1.17
batch validate gossip attestation - vc 640000 - chunk 64 136.79 us/op 111.30 us/op 1.23
batch validate gossip attestation - vc 640000 - chunk 128 141.12 us/op 107.82 us/op 1.31
batch validate gossip attestation - vc 640000 - chunk 256 144.24 us/op 101.30 us/op 1.42
pickEth1Vote - no votes 1.3561 ms/op 1.0309 ms/op 1.32
pickEth1Vote - max votes 9.0558 ms/op 6.0681 ms/op 1.49
pickEth1Vote - Eth1Data hashTreeRoot value x2048 20.298 ms/op 15.522 ms/op 1.31
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 30.378 ms/op 18.882 ms/op 1.61
pickEth1Vote - Eth1Data fastSerialize value x2048 650.77 us/op 460.93 us/op 1.41
pickEth1Vote - Eth1Data fastSerialize tree x2048 4.9630 ms/op 4.1122 ms/op 1.21
bytes32 toHexString 742.00 ns/op 423.00 ns/op 1.75
bytes32 Buffer.toString(hex) 331.00 ns/op 248.00 ns/op 1.33
bytes32 Buffer.toString(hex) from Uint8Array 561.00 ns/op 377.00 ns/op 1.49
bytes32 Buffer.toString(hex) + 0x 341.00 ns/op 252.00 ns/op 1.35
Object access 1 prop 0.26300 ns/op 0.13900 ns/op 1.89
Map access 1 prop 0.20400 ns/op 0.13200 ns/op 1.55
Object get x1000 10.582 ns/op 5.9270 ns/op 1.79
Map get x1000 9.9870 ns/op 6.2940 ns/op 1.59
Object set x1000 69.602 ns/op 31.695 ns/op 2.20
Map set x1000 44.821 ns/op 21.607 ns/op 2.07
Return object 10000 times 0.40950 ns/op 0.28240 ns/op 1.45
Throw Error 10000 times 4.1979 us/op 3.2823 us/op 1.28
toHex 219.34 ns/op 154.22 ns/op 1.42
Buffer.from 215.99 ns/op 136.88 ns/op 1.58
shared Buffer 104.84 ns/op 89.600 ns/op 1.17
fastMsgIdFn sha256 / 200 bytes 2.7080 us/op 2.1540 us/op 1.26
fastMsgIdFn h32 xxhash / 200 bytes 348.00 ns/op 220.00 ns/op 1.58
fastMsgIdFn h64 xxhash / 200 bytes 311.00 ns/op 255.00 ns/op 1.22
fastMsgIdFn sha256 / 1000 bytes 8.3760 us/op 7.0130 us/op 1.19
fastMsgIdFn h32 xxhash / 1000 bytes 468.00 ns/op 340.00 ns/op 1.38
fastMsgIdFn h64 xxhash / 1000 bytes 384.00 ns/op 334.00 ns/op 1.15
fastMsgIdFn sha256 / 10000 bytes 70.351 us/op 62.078 us/op 1.13
fastMsgIdFn h32 xxhash / 10000 bytes 2.0660 us/op 1.7240 us/op 1.20
fastMsgIdFn h64 xxhash / 10000 bytes 1.3670 us/op 1.1390 us/op 1.20
send data - 1000 256B messages 16.033 ms/op 11.658 ms/op 1.38
send data - 1000 512B messages 23.019 ms/op 14.782 ms/op 1.56
send data - 1000 1024B messages 30.073 ms/op 24.380 ms/op 1.23
send data - 1000 1200B messages 34.943 ms/op 26.105 ms/op 1.34
send data - 1000 2048B messages 35.451 ms/op 30.605 ms/op 1.16
send data - 1000 4096B messages 38.657 ms/op 29.947 ms/op 1.29
send data - 1000 16384B messages 86.434 ms/op 70.462 ms/op 1.23
send data - 1000 65536B messages 227.00 ms/op 218.24 ms/op 1.04
enrSubnets - fastDeserialize 64 bits 1.4660 us/op 1.0890 us/op 1.35
enrSubnets - ssz BitVector 64 bits 503.00 ns/op 334.00 ns/op 1.51
enrSubnets - fastDeserialize 4 bits 226.00 ns/op 139.00 ns/op 1.63
enrSubnets - ssz BitVector 4 bits 492.00 ns/op 339.00 ns/op 1.45
prioritizePeers score -10:0 att 32-0.1 sync 2-0 220.04 us/op 147.69 us/op 1.49
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 240.69 us/op 148.65 us/op 1.62
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 344.79 us/op 242.20 us/op 1.42
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 467.70 us/op 400.56 us/op 1.17
prioritizePeers score 0:0 att 64-1 sync 4-1 977.12 us/op 609.90 us/op 1.60
array of 16000 items push then shift 1.8956 us/op 1.6177 us/op 1.17
LinkedList of 16000 items push then shift 10.100 ns/op 6.9440 ns/op 1.45
array of 16000 items push then pop 140.63 ns/op 114.02 ns/op 1.23
LinkedList of 16000 items push then pop 9.6010 ns/op 6.8190 ns/op 1.41
array of 24000 items push then shift 2.8519 us/op 2.3857 us/op 1.20
LinkedList of 24000 items push then shift 9.7550 ns/op 6.9090 ns/op 1.41
array of 24000 items push then pop 180.99 ns/op 143.72 ns/op 1.26
LinkedList of 24000 items push then pop 9.4940 ns/op 6.7660 ns/op 1.40
intersect bitArray bitLen 8 7.8780 ns/op 6.2670 ns/op 1.26
intersect array and set length 8 50.741 ns/op 44.892 ns/op 1.13
intersect bitArray bitLen 128 32.737 ns/op 29.197 ns/op 1.12
intersect array and set length 128 811.45 ns/op 663.73 ns/op 1.22
bitArray.getTrueBitIndexes() bitLen 128 2.3770 us/op 2.0020 us/op 1.19
bitArray.getTrueBitIndexes() bitLen 248 3.1130 us/op 2.7880 us/op 1.12
bitArray.getTrueBitIndexes() bitLen 512 7.4850 us/op 5.8460 us/op 1.28
Buffer.concat 32 items 973.00 ns/op 879.00 ns/op 1.11
Uint8Array.set 32 items 1.5880 us/op 1.4300 us/op 1.11
Buffer.copy 2.2060 us/op 1.5040 us/op 1.47
Uint8Array.set - with subarray 2.8070 us/op 2.2250 us/op 1.26
Uint8Array.set - without subarray 1.9160 us/op 1.1940 us/op 1.60
getUint32 - dataview 272.00 ns/op 221.00 ns/op 1.23
getUint32 - manual 202.00 ns/op 141.00 ns/op 1.43
Set add up to 64 items then delete first 2.3346 us/op 2.0969 us/op 1.11
OrderedSet add up to 64 items then delete first 3.4982 us/op 3.1563 us/op 1.11
Set add up to 64 items then delete last 2.5821 us/op 2.4003 us/op 1.08
OrderedSet add up to 64 items then delete last 3.9937 us/op 3.7027 us/op 1.08
Set add up to 64 items then delete middle 2.7500 us/op 2.4462 us/op 1.12
OrderedSet add up to 64 items then delete middle 5.8677 us/op 5.0942 us/op 1.15
Set add up to 128 items then delete first 5.6011 us/op 4.8092 us/op 1.16
OrderedSet add up to 128 items then delete first 7.9559 us/op 6.9556 us/op 1.14
Set add up to 128 items then delete last 5.0859 us/op 4.8433 us/op 1.05
OrderedSet add up to 128 items then delete last 7.4047 us/op 7.3495 us/op 1.01
Set add up to 128 items then delete middle 5.7850 us/op 4.7519 us/op 1.22
OrderedSet add up to 128 items then delete middle 15.715 us/op 13.105 us/op 1.20
Set add up to 256 items then delete first 11.281 us/op 9.6078 us/op 1.17
OrderedSet add up to 256 items then delete first 17.501 us/op 14.497 us/op 1.21
Set add up to 256 items then delete last 10.126 us/op 9.5841 us/op 1.06
OrderedSet add up to 256 items then delete last 14.777 us/op 14.908 us/op 0.99
Set add up to 256 items then delete middle 9.8361 us/op 9.6047 us/op 1.02
OrderedSet add up to 256 items then delete middle 41.148 us/op 39.315 us/op 1.05
transfer serialized Status (84 B) 1.3750 us/op 1.3030 us/op 1.06
copy serialized Status (84 B) 1.1080 us/op 1.0450 us/op 1.06
transfer serialized SignedVoluntaryExit (112 B) 1.4700 us/op 1.3680 us/op 1.07
copy serialized SignedVoluntaryExit (112 B) 1.2020 us/op 1.0890 us/op 1.10
transfer serialized ProposerSlashing (416 B) 1.6520 us/op 1.5180 us/op 1.09
copy serialized ProposerSlashing (416 B) 1.4820 us/op 1.9620 us/op 0.76
transfer serialized Attestation (485 B) 1.6450 us/op 1.9460 us/op 0.85
copy serialized Attestation (485 B) 1.4990 us/op 2.0230 us/op 0.74
transfer serialized AttesterSlashing (33232 B) 1.8260 us/op 2.5760 us/op 0.71
copy serialized AttesterSlashing (33232 B) 5.2540 us/op 6.4090 us/op 0.82
transfer serialized Small SignedBeaconBlock (128000 B) 2.6620 us/op 2.5150 us/op 1.06
copy serialized Small SignedBeaconBlock (128000 B) 16.150 us/op 17.015 us/op 0.95
transfer serialized Avg SignedBeaconBlock (200000 B) 3.2050 us/op 2.9040 us/op 1.10
copy serialized Avg SignedBeaconBlock (200000 B) 24.599 us/op 22.199 us/op 1.11
transfer serialized BlobsSidecar (524380 B) 2.5940 us/op 2.4650 us/op 1.05
copy serialized BlobsSidecar (524380 B) 79.049 us/op 203.84 us/op 0.39
transfer serialized Big SignedBeaconBlock (1000000 B) 2.5200 us/op 2.8850 us/op 0.87
copy serialized Big SignedBeaconBlock (1000000 B) 168.08 us/op 148.46 us/op 1.13
pass gossip attestations to forkchoice per slot 2.9818 ms/op 2.7928 ms/op 1.07
forkChoice updateHead vc 100000 bc 64 eq 0 451.83 us/op 448.16 us/op 1.01
forkChoice updateHead vc 600000 bc 64 eq 0 3.5403 ms/op 2.6426 ms/op 1.34
forkChoice updateHead vc 1000000 bc 64 eq 0 5.1107 ms/op 4.7497 ms/op 1.08
forkChoice updateHead vc 600000 bc 320 eq 0 2.9951 ms/op 2.6412 ms/op 1.13
forkChoice updateHead vc 600000 bc 1200 eq 0 3.1039 ms/op 2.8108 ms/op 1.10
forkChoice updateHead vc 600000 bc 7200 eq 0 3.5984 ms/op 3.2127 ms/op 1.12
forkChoice updateHead vc 600000 bc 64 eq 1000 10.339 ms/op 10.395 ms/op 0.99
forkChoice updateHead vc 600000 bc 64 eq 10000 10.238 ms/op 10.067 ms/op 1.02
forkChoice updateHead vc 600000 bc 64 eq 300000 14.736 ms/op 13.382 ms/op 1.10
computeDeltas 500000 validators 300 proto nodes 4.2989 ms/op 3.8727 ms/op 1.11
computeDeltas 500000 validators 1200 proto nodes 4.2130 ms/op 3.9015 ms/op 1.08
computeDeltas 500000 validators 7200 proto nodes 4.3548 ms/op 3.8872 ms/op 1.12
computeDeltas 750000 validators 300 proto nodes 6.6321 ms/op 5.7349 ms/op 1.16
computeDeltas 750000 validators 1200 proto nodes 6.9607 ms/op 5.8157 ms/op 1.20
computeDeltas 750000 validators 7200 proto nodes 7.5253 ms/op 5.7781 ms/op 1.30
computeDeltas 1400000 validators 300 proto nodes 12.196 ms/op 10.917 ms/op 1.12
computeDeltas 1400000 validators 1200 proto nodes 13.256 ms/op 10.892 ms/op 1.22
computeDeltas 1400000 validators 7200 proto nodes 14.338 ms/op 10.921 ms/op 1.31
computeDeltas 2100000 validators 300 proto nodes 20.446 ms/op 16.200 ms/op 1.26
computeDeltas 2100000 validators 1200 proto nodes 20.485 ms/op 16.350 ms/op 1.25
computeDeltas 2100000 validators 7200 proto nodes 19.086 ms/op 16.332 ms/op 1.17
altair processAttestation - 250000 vs - 7PWei normalcase 2.4567 ms/op 1.8563 ms/op 1.32
altair processAttestation - 250000 vs - 7PWei worstcase 3.3190 ms/op 2.7594 ms/op 1.20
altair processAttestation - setStatus - 1/6 committees join 104.52 us/op 119.37 us/op 0.88
altair processAttestation - setStatus - 1/3 committees join 205.34 us/op 228.21 us/op 0.90
altair processAttestation - setStatus - 1/2 committees join 277.90 us/op 320.78 us/op 0.87
altair processAttestation - setStatus - 2/3 committees join 348.05 us/op 410.32 us/op 0.85
altair processAttestation - setStatus - 4/5 committees join 499.11 us/op 569.19 us/op 0.88
altair processAttestation - setStatus - 100% committees join 595.36 us/op 669.31 us/op 0.89
altair processBlock - 250000 vs - 7PWei normalcase 6.5363 ms/op 4.7251 ms/op 1.38
altair processBlock - 250000 vs - 7PWei normalcase hashState 29.291 ms/op 27.491 ms/op 1.07
altair processBlock - 250000 vs - 7PWei worstcase 37.048 ms/op 30.747 ms/op 1.20
altair processBlock - 250000 vs - 7PWei worstcase hashState 79.768 ms/op 68.855 ms/op 1.16
phase0 processBlock - 250000 vs - 7PWei normalcase 2.3576 ms/op 1.6138 ms/op 1.46
phase0 processBlock - 250000 vs - 7PWei worstcase 24.553 ms/op 19.414 ms/op 1.26
altair processEth1Data - 250000 vs - 7PWei normalcase 342.50 us/op 302.53 us/op 1.13
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 6.8250 us/op 4.8990 us/op 1.39
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 46.771 us/op 27.224 us/op 1.72
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 12.286 us/op 8.5550 us/op 1.44
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 8.0260 us/op 5.0680 us/op 1.58
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 180.76 us/op 113.18 us/op 1.60
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 1.1976 ms/op 1.0894 ms/op 1.10
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.6474 ms/op 1.4814 ms/op 1.11
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.5439 ms/op 1.4673 ms/op 1.05
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 4.3106 ms/op 3.6411 ms/op 1.18
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 1.7399 ms/op 1.5472 ms/op 1.12
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 4.4438 ms/op 3.6768 ms/op 1.21
Tree 40 250000 create 261.73 ms/op 219.15 ms/op 1.19
Tree 40 250000 get(125000) 164.41 ns/op 141.68 ns/op 1.16
Tree 40 250000 set(125000) 761.93 ns/op 642.25 ns/op 1.19
Tree 40 250000 toArray() 21.021 ms/op 14.920 ms/op 1.41
Tree 40 250000 iterate all - toArray() + loop 23.071 ms/op 14.649 ms/op 1.57
Tree 40 250000 iterate all - get(i) 59.345 ms/op 50.201 ms/op 1.18
Array 250000 create 3.6236 ms/op 2.7622 ms/op 1.31
Array 250000 clone - spread 1.4510 ms/op 1.4527 ms/op 1.00
Array 250000 get(125000) 0.45000 ns/op 0.41200 ns/op 1.09
Array 250000 set(125000) 0.47200 ns/op 0.43100 ns/op 1.10
Array 250000 iterate all - loop 112.95 us/op 81.256 us/op 1.39
phase0 afterProcessEpoch - 250000 vs - 7PWei 54.488 ms/op 47.876 ms/op 1.14
Array.fill - length 1000000 3.6344 ms/op 3.5911 ms/op 1.01
Array push - length 1000000 29.157 ms/op 12.393 ms/op 2.35
Array.get 0.35267 ns/op 0.26163 ns/op 1.35
Uint8Array.get 0.46643 ns/op 0.41989 ns/op 1.11
phase0 beforeProcessEpoch - 250000 vs - 7PWei 27.835 ms/op 16.383 ms/op 1.70
altair processEpoch - mainnet_e81889 466.89 ms/op 280.43 ms/op 1.66
mainnet_e81889 - altair beforeProcessEpoch 30.671 ms/op 17.766 ms/op 1.73
mainnet_e81889 - altair processJustificationAndFinalization 24.832 us/op 12.112 us/op 2.05
mainnet_e81889 - altair processInactivityUpdates 10.758 ms/op 5.0529 ms/op 2.13
mainnet_e81889 - altair processRewardsAndPenalties 64.813 ms/op 44.895 ms/op 1.44
mainnet_e81889 - altair processRegistryUpdates 1.9620 us/op 1.6090 us/op 1.22
mainnet_e81889 - altair processSlashings 807.00 ns/op 347.00 ns/op 2.33
mainnet_e81889 - altair processEth1DataReset 945.00 ns/op 306.00 ns/op 3.09
mainnet_e81889 - altair processEffectiveBalanceUpdates 7.8103 ms/op 1.9291 ms/op 4.05
mainnet_e81889 - altair processSlashingsReset 8.6150 us/op 2.7690 us/op 3.11
mainnet_e81889 - altair processRandaoMixesReset 8.2260 us/op 5.0280 us/op 1.64
mainnet_e81889 - altair processHistoricalRootsUpdate 834.00 ns/op 500.00 ns/op 1.67
mainnet_e81889 - altair processParticipationFlagUpdates 5.0790 us/op 2.0250 us/op 2.51
mainnet_e81889 - altair processSyncCommitteeUpdates 970.00 ns/op 430.00 ns/op 2.26
mainnet_e81889 - altair afterProcessEpoch 56.918 ms/op 49.775 ms/op 1.14
capella processEpoch - mainnet_e217614 1.2654 s/op 1.0315 s/op 1.23
mainnet_e217614 - capella beforeProcessEpoch 93.565 ms/op 72.849 ms/op 1.28
mainnet_e217614 - capella processJustificationAndFinalization 19.271 us/op 13.642 us/op 1.41
mainnet_e217614 - capella processInactivityUpdates 21.803 ms/op 16.665 ms/op 1.31
mainnet_e217614 - capella processRewardsAndPenalties 332.02 ms/op 222.56 ms/op 1.49
mainnet_e217614 - capella processRegistryUpdates 16.971 us/op 12.651 us/op 1.34
mainnet_e217614 - capella processSlashings 585.00 ns/op 366.00 ns/op 1.60
mainnet_e217614 - capella processEth1DataReset 379.00 ns/op 338.00 ns/op 1.12
mainnet_e217614 - capella processEffectiveBalanceUpdates 15.818 ms/op 11.482 ms/op 1.38
mainnet_e217614 - capella processSlashingsReset 5.5800 us/op 3.3110 us/op 1.69
mainnet_e217614 - capella processRandaoMixesReset 5.4660 us/op 3.7910 us/op 1.44
mainnet_e217614 - capella processHistoricalRootsUpdate 1.2070 us/op 369.00 ns/op 3.27
mainnet_e217614 - capella processParticipationFlagUpdates 4.1370 us/op 2.0760 us/op 1.99
mainnet_e217614 - capella afterProcessEpoch 139.60 ms/op 121.22 ms/op 1.15
phase0 processEpoch - mainnet_e58758 394.55 ms/op 327.32 ms/op 1.21
mainnet_e58758 - phase0 beforeProcessEpoch 109.32 ms/op 66.395 ms/op 1.65
mainnet_e58758 - phase0 processJustificationAndFinalization 47.860 us/op 14.126 us/op 3.39
mainnet_e58758 - phase0 processRewardsAndPenalties 76.106 ms/op 29.650 ms/op 2.57
mainnet_e58758 - phase0 processRegistryUpdates 19.411 us/op 6.7860 us/op 2.86
mainnet_e58758 - phase0 processSlashings 1.4240 us/op 399.00 ns/op 3.57
mainnet_e58758 - phase0 processEth1DataReset 1.4990 us/op 320.00 ns/op 4.68
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 2.7658 ms/op 1.7039 ms/op 1.62
mainnet_e58758 - phase0 processSlashingsReset 14.271 us/op 2.9450 us/op 4.85
mainnet_e58758 - phase0 processRandaoMixesReset 11.927 us/op 3.8560 us/op 3.09
mainnet_e58758 - phase0 processHistoricalRootsUpdate 1.2830 us/op 404.00 ns/op 3.18
mainnet_e58758 - phase0 processParticipationRecordUpdates 9.7320 us/op 2.8540 us/op 3.41
mainnet_e58758 - phase0 afterProcessEpoch 55.171 ms/op 42.547 ms/op 1.30
phase0 processEffectiveBalanceUpdates - 250000 normalcase 2.1081 ms/op 1.8034 ms/op 1.17
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 4.7828 ms/op 2.2071 ms/op 2.17
altair processInactivityUpdates - 250000 normalcase 38.720 ms/op 14.361 ms/op 2.70
altair processInactivityUpdates - 250000 worstcase 46.542 ms/op 14.474 ms/op 3.22
phase0 processRegistryUpdates - 250000 normalcase 15.707 us/op 6.3980 us/op 2.45
phase0 processRegistryUpdates - 250000 badcase_full_deposits 603.53 us/op 238.07 us/op 2.54
phase0 processRegistryUpdates - 250000 worstcase 0.5 291.85 ms/op 121.30 ms/op 2.41
altair processRewardsAndPenalties - 250000 normalcase 85.042 ms/op 27.551 ms/op 3.09
altair processRewardsAndPenalties - 250000 worstcase 39.108 ms/op 37.436 ms/op 1.04
phase0 getAttestationDeltas - 250000 normalcase 9.8530 ms/op 7.4162 ms/op 1.33
phase0 getAttestationDeltas - 250000 worstcase 9.1974 ms/op 7.0716 ms/op 1.30
phase0 processSlashings - 250000 worstcase 151.06 us/op 78.678 us/op 1.92
altair processSyncCommitteeUpdates - 250000 176.04 ms/op 123.70 ms/op 1.42
BeaconState.hashTreeRoot - No change 491.00 ns/op 249.00 ns/op 1.97
BeaconState.hashTreeRoot - 1 full validator 146.98 us/op 111.51 us/op 1.32
BeaconState.hashTreeRoot - 32 full validator 1.4156 ms/op 1.1640 ms/op 1.22
BeaconState.hashTreeRoot - 512 full validator 18.147 ms/op 9.7886 ms/op 1.85
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 207.78 us/op 152.31 us/op 1.36
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 3.0946 ms/op 1.6681 ms/op 1.86
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 40.490 ms/op 22.163 ms/op 1.83
BeaconState.hashTreeRoot - 1 balances 171.47 us/op 110.13 us/op 1.56
BeaconState.hashTreeRoot - 32 balances 1.6064 ms/op 896.23 us/op 1.79
BeaconState.hashTreeRoot - 512 balances 14.261 ms/op 7.7297 ms/op 1.84
BeaconState.hashTreeRoot - 250000 balances 342.14 ms/op 176.30 ms/op 1.94
aggregationBits - 2048 els - zipIndexesInBitList 58.970 us/op 23.091 us/op 2.55
byteArrayEquals 32 66.793 ns/op 57.192 ns/op 1.17
Buffer.compare 32 23.809 ns/op 17.055 ns/op 1.40
byteArrayEquals 1024 1.7250 us/op 1.5664 us/op 1.10
Buffer.compare 1024 31.109 ns/op 24.600 ns/op 1.26
byteArrayEquals 16384 28.305 us/op 24.935 us/op 1.14
Buffer.compare 16384 242.82 ns/op 186.09 ns/op 1.30
byteArrayEquals 123687377 238.93 ms/op 187.59 ms/op 1.27
Buffer.compare 123687377 20.033 ms/op 6.4598 ms/op 3.10
byteArrayEquals 32 - diff last byte 59.017 ns/op 51.675 ns/op 1.14
Buffer.compare 32 - diff last byte 24.604 ns/op 16.848 ns/op 1.46
byteArrayEquals 1024 - diff last byte 1.7511 us/op 1.5551 us/op 1.13
Buffer.compare 1024 - diff last byte 37.470 ns/op 24.753 ns/op 1.51
byteArrayEquals 16384 - diff last byte 28.049 us/op 24.793 us/op 1.13
Buffer.compare 16384 - diff last byte 284.37 ns/op 192.31 ns/op 1.48
byteArrayEquals 123687377 - diff last byte 252.15 ms/op 191.89 ms/op 1.31
Buffer.compare 123687377 - diff last byte 10.423 ms/op 6.4832 ms/op 1.61
byteArrayEquals 32 - random bytes 5.4830 ns/op 5.2490 ns/op 1.04
Buffer.compare 32 - random bytes 18.106 ns/op 17.655 ns/op 1.03
byteArrayEquals 1024 - random bytes 5.5110 ns/op 5.2360 ns/op 1.05
Buffer.compare 1024 - random bytes 17.780 ns/op 17.450 ns/op 1.02
byteArrayEquals 16384 - random bytes 5.4140 ns/op 5.1730 ns/op 1.05
Buffer.compare 16384 - random bytes 18.317 ns/op 17.337 ns/op 1.06
byteArrayEquals 123687377 - random bytes 6.7400 ns/op 6.4900 ns/op 1.04
Buffer.compare 123687377 - random bytes 19.520 ns/op 18.700 ns/op 1.04
regular array get 100000 times 37.466 us/op 43.104 us/op 0.87
wrappedArray get 100000 times 33.964 us/op 34.078 us/op 1.00
arrayWithProxy get 100000 times 13.463 ms/op 13.837 ms/op 0.97
ssz.Root.equals 47.143 ns/op 46.910 ns/op 1.00
byteArrayEquals 46.724 ns/op 46.231 ns/op 1.01
Buffer.compare 10.797 ns/op 10.505 ns/op 1.03
processSlot - 1 slots 13.460 us/op 13.911 us/op 0.97
processSlot - 32 slots 2.4443 ms/op 2.6823 ms/op 0.91
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 36.330 ms/op 36.212 ms/op 1.00
getCommitteeAssignments - req 1 vs - 250000 vc 2.1908 ms/op 2.0609 ms/op 1.06
getCommitteeAssignments - req 100 vs - 250000 vc 4.2650 ms/op 3.9873 ms/op 1.07
getCommitteeAssignments - req 1000 vs - 250000 vc 4.5812 ms/op 4.1699 ms/op 1.10
findModifiedValidators - 10000 modified validators 264.24 ms/op 226.75 ms/op 1.17
findModifiedValidators - 1000 modified validators 184.71 ms/op 164.65 ms/op 1.12
findModifiedValidators - 100 modified validators 169.48 ms/op 153.96 ms/op 1.10
findModifiedValidators - 10 modified validators 169.92 ms/op 152.26 ms/op 1.12
findModifiedValidators - 1 modified validators 156.16 ms/op 152.23 ms/op 1.03
findModifiedValidators - no difference 178.45 ms/op 168.35 ms/op 1.06
compare ViewDUs 3.4539 s/op 2.9207 s/op 1.18
compare each validator Uint8Array 1.6242 s/op 1.5692 s/op 1.03
compare ViewDU to Uint8Array 1.3807 s/op 1.0075 s/op 1.37
migrate state 1000000 validators, 24 modified, 0 new 875.46 ms/op 761.69 ms/op 1.15
migrate state 1000000 validators, 1700 modified, 1000 new 947.65 ms/op 961.73 ms/op 0.99
migrate state 1000000 validators, 3400 modified, 2000 new 1.2089 s/op 1.1539 s/op 1.05
migrate state 1500000 validators, 24 modified, 0 new 694.68 ms/op 717.28 ms/op 0.97
migrate state 1500000 validators, 1700 modified, 1000 new 982.91 ms/op 987.65 ms/op 1.00
migrate state 1500000 validators, 3400 modified, 2000 new 1.2551 s/op 1.1428 s/op 1.10
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 4.9000 ns/op 4.2800 ns/op 1.14
state getBlockRootAtSlot - 250000 vs - 7PWei 582.98 ns/op 716.59 ns/op 0.81
computeProposers - vc 250000 7.3927 ms/op 6.7528 ms/op 1.09
computeEpochShuffling - vc 250000 43.552 ms/op 40.061 ms/op 1.09
getNextSyncCommittee - vc 250000 132.80 ms/op 126.99 ms/op 1.05
computeSigningRoot for AttestationData 24.354 us/op 24.968 us/op 0.98
hash AttestationData serialized data then Buffer.toString(base64) 1.6176 us/op 1.5227 us/op 1.06
toHexString serialized data 935.47 ns/op 867.43 ns/op 1.08
Buffer.toString(base64) 179.05 ns/op 183.88 ns/op 0.97
nodejs block root to RootHex using toHex 168.07 ns/op 154.69 ns/op 1.09
nodejs block root to RootHex using toRootHex 98.387 ns/op 96.509 ns/op 1.02
browser block root to RootHex using the deprecated toHexString 233.86 ns/op 224.06 ns/op 1.04
browser block root to RootHex using toHex 182.52 ns/op 183.61 ns/op 0.99
browser block root to RootHex using toRootHex 169.35 ns/op 160.37 ns/op 1.06

by benchmarkbot/action

@twoeths
Copy link
Contributor

twoeths commented Nov 6, 2024

this reverts #7204
for more info, the above PR seems to improve main thread a lot that it caused low performant on network thread due to high gc

this is peer count:

Screenshot 2024-11-07 at 06 20 40

there are too few inbound peers while a lot of out bound peers, while mesh peers are a lot which we haven't seen in past releases
Screenshot 2024-11-07 at 06 21 37

gc is so bad on network thread

Screenshot 2024-11-07 at 06 21 55

Copy link
Contributor

@twoeths twoeths left a comment

Choose a reason for hiding this comment

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

there could be other issues that we haven't found since the issue happened in rc.0 too on beta mainnet since Oct 20, but that's with libp2p 1.x. Anyway this PR definitely needs to merge and test again

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
status-do-not-merge Merging this issue will break the build. Do not merge!
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants