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

fix: queued attestations metric #7158

Merged
merged 1 commit into from
Oct 14, 2024

Conversation

twoeths
Copy link
Contributor

@twoeths twoeths commented Oct 14, 2024

Motivation

Make queued attestations metric consistent and helpful

Description

  • When applying queued attestations, compute queuedAttestationsPreviousSlot which is reset per slot
  • For metric, use queuedAttestationsPreviousSlot instead of computing on the fly value
  • The result is consistent across holesky nodes after deploying on feat3
Screenshot 2024-10-14 at 13 42 52

Closes #7157

Copy link

codecov bot commented Oct 14, 2024

Codecov Report

Attention: Patch coverage is 14.28571% with 6 lines in your changes missing coverage. Please review.

Project coverage is 49.18%. Comparing base (d37bdb0) to head (5b0beb1).
Report is 2 commits behind head on unstable.

Additional details and impacted files
@@             Coverage Diff              @@
##           unstable    #7158      +/-   ##
============================================
- Coverage     49.18%   49.18%   -0.01%     
============================================
  Files           598      598              
  Lines         39801    39802       +1     
  Branches       2082     2087       +5     
============================================
- Hits          19576    19575       -1     
- Misses        20184    20185       +1     
- Partials         41       42       +1     

@twoeths twoeths marked this pull request as ready for review October 14, 2024 07:05
@twoeths twoeths requested a review from a team as a code owner October 14, 2024 07:05
Copy link
Contributor

Performance Report

✔️ no performance regression detected

🚀🚀 Significant benchmark improvement detected

Benchmark suite Current: 23b6982 Previous: d37bdb0 Ratio
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.4956 ms/op 9.6080 ms/op 0.16
Full benchmark results
Benchmark suite Current: 23b6982 Previous: d37bdb0 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 1.8104 ms/op 2.7476 ms/op 0.66
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 40.197 us/op 80.185 us/op 0.50
BLS verify - blst 910.47 us/op 1.0552 ms/op 0.86
BLS verifyMultipleSignatures 3 - blst 1.3182 ms/op 1.3518 ms/op 0.98
BLS verifyMultipleSignatures 8 - blst 2.1094 ms/op 1.9605 ms/op 1.08
BLS verifyMultipleSignatures 32 - blst 4.4654 ms/op 6.2975 ms/op 0.71
BLS verifyMultipleSignatures 64 - blst 8.5216 ms/op 11.041 ms/op 0.77
BLS verifyMultipleSignatures 128 - blst 15.901 ms/op 18.654 ms/op 0.85
BLS deserializing 10000 signatures 616.18 ms/op 714.52 ms/op 0.86
BLS deserializing 100000 signatures 6.1853 s/op 6.9907 s/op 0.88
BLS verifyMultipleSignatures - same message - 3 - blst 981.54 us/op 1.0918 ms/op 0.90
BLS verifyMultipleSignatures - same message - 8 - blst 1.0806 ms/op 1.0658 ms/op 1.01
BLS verifyMultipleSignatures - same message - 32 - blst 1.6874 ms/op 1.8954 ms/op 0.89
BLS verifyMultipleSignatures - same message - 64 - blst 2.5762 ms/op 2.7597 ms/op 0.93
BLS verifyMultipleSignatures - same message - 128 - blst 4.1834 ms/op 4.2411 ms/op 0.99
BLS aggregatePubkeys 32 - blst 17.730 us/op 19.168 us/op 0.92
BLS aggregatePubkeys 128 - blst 62.882 us/op 68.010 us/op 0.92
notSeenSlots=1 numMissedVotes=1 numBadVotes=10 63.444 ms/op 62.542 ms/op 1.01
notSeenSlots=1 numMissedVotes=0 numBadVotes=4 61.985 ms/op 56.029 ms/op 1.11
notSeenSlots=2 numMissedVotes=1 numBadVotes=10 46.092 ms/op 50.636 ms/op 0.91
getSlashingsAndExits - default max 69.153 us/op 106.45 us/op 0.65
getSlashingsAndExits - 2k 272.66 us/op 323.09 us/op 0.84
proposeBlockBody type=full, size=empty 4.9237 ms/op 6.7640 ms/op 0.73
isKnown best case - 1 super set check 467.00 ns/op 323.00 ns/op 1.45
isKnown normal case - 2 super set checks 443.00 ns/op 316.00 ns/op 1.40
isKnown worse case - 16 super set checks 443.00 ns/op 295.00 ns/op 1.50
InMemoryCheckpointStateCache - add get delete 2.9600 us/op 3.1890 us/op 0.93
updateUnfinalizedPubkeys - updating 10 pubkeys 853.94 us/op 1.2347 ms/op 0.69
updateUnfinalizedPubkeys - updating 100 pubkeys 2.9245 ms/op 4.5262 ms/op 0.65
updateUnfinalizedPubkeys - updating 1000 pubkeys 39.164 ms/op 59.492 ms/op 0.66
validate api signedAggregateAndProof - struct 1.6109 ms/op 1.6519 ms/op 0.98
validate gossip signedAggregateAndProof - struct 1.5270 ms/op 1.5385 ms/op 0.99
batch validate gossip attestation - vc 640000 - chunk 32 126.82 us/op 139.66 us/op 0.91
batch validate gossip attestation - vc 640000 - chunk 64 113.40 us/op 120.66 us/op 0.94
batch validate gossip attestation - vc 640000 - chunk 128 104.99 us/op 117.95 us/op 0.89
batch validate gossip attestation - vc 640000 - chunk 256 104.69 us/op 113.67 us/op 0.92
pickEth1Vote - no votes 960.61 us/op 1.1652 ms/op 0.82
pickEth1Vote - max votes 5.2430 ms/op 7.8237 ms/op 0.67
pickEth1Vote - Eth1Data hashTreeRoot value x2048 10.209 ms/op 16.307 ms/op 0.63
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 16.299 ms/op 23.186 ms/op 0.70
pickEth1Vote - Eth1Data fastSerialize value x2048 365.66 us/op 496.62 us/op 0.74
pickEth1Vote - Eth1Data fastSerialize tree x2048 3.5194 ms/op 4.2911 ms/op 0.82
bytes32 toHexString 585.00 ns/op 546.00 ns/op 1.07
bytes32 Buffer.toString(hex) 422.00 ns/op 275.00 ns/op 1.53
bytes32 Buffer.toString(hex) from Uint8Array 522.00 ns/op 448.00 ns/op 1.17
bytes32 Buffer.toString(hex) + 0x 415.00 ns/op 272.00 ns/op 1.53
Object access 1 prop 0.29900 ns/op 0.15100 ns/op 1.98
Map access 1 prop 0.29800 ns/op 0.14100 ns/op 2.11
Object get x1000 4.8560 ns/op 5.9910 ns/op 0.81
Map get x1000 5.5960 ns/op 6.4530 ns/op 0.87
Object set x1000 22.761 ns/op 35.462 ns/op 0.64
Map set x1000 19.755 ns/op 25.028 ns/op 0.79
Return object 10000 times 0.28530 ns/op 0.30060 ns/op 0.95
Throw Error 10000 times 2.5506 us/op 3.4073 us/op 0.75
toHex 134.58 ns/op 171.69 ns/op 0.78
Buffer.from 131.66 ns/op 156.86 ns/op 0.84
shared Buffer 69.071 ns/op 96.247 ns/op 0.72
fastMsgIdFn sha256 / 200 bytes 1.8900 us/op 2.4180 us/op 0.78
fastMsgIdFn h32 xxhash / 200 bytes 400.00 ns/op 293.00 ns/op 1.37
fastMsgIdFn h64 xxhash / 200 bytes 435.00 ns/op 275.00 ns/op 1.58
fastMsgIdFn sha256 / 1000 bytes 5.8190 us/op 7.3230 us/op 0.79
fastMsgIdFn h32 xxhash / 1000 bytes 517.00 ns/op 416.00 ns/op 1.24
fastMsgIdFn h64 xxhash / 1000 bytes 496.00 ns/op 356.00 ns/op 1.39
fastMsgIdFn sha256 / 10000 bytes 47.639 us/op 64.942 us/op 0.73
fastMsgIdFn h32 xxhash / 10000 bytes 1.9060 us/op 1.9460 us/op 0.98
fastMsgIdFn h64 xxhash / 10000 bytes 1.3290 us/op 1.2580 us/op 1.06
send data - 1000 256B messages 10.499 ms/op 14.210 ms/op 0.74
send data - 1000 512B messages 14.572 ms/op 18.034 ms/op 0.81
send data - 1000 1024B messages 24.235 ms/op 29.206 ms/op 0.83
send data - 1000 1200B messages 24.305 ms/op 28.542 ms/op 0.85
send data - 1000 2048B messages 30.230 ms/op 35.521 ms/op 0.85
send data - 1000 4096B messages 28.713 ms/op 33.970 ms/op 0.85
send data - 1000 16384B messages 66.733 ms/op 71.594 ms/op 0.93
send data - 1000 65536B messages 298.03 ms/op 246.28 ms/op 1.21
enrSubnets - fastDeserialize 64 bits 1.1080 us/op 1.1390 us/op 0.97
enrSubnets - ssz BitVector 64 bits 549.00 ns/op 378.00 ns/op 1.45
enrSubnets - fastDeserialize 4 bits 348.00 ns/op 194.00 ns/op 1.79
enrSubnets - ssz BitVector 4 bits 552.00 ns/op 413.00 ns/op 1.34
prioritizePeers score -10:0 att 32-0.1 sync 2-0 127.56 us/op 195.59 us/op 0.65
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 163.12 us/op 173.41 us/op 0.94
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 289.09 us/op 347.48 us/op 0.83
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 542.23 us/op 514.41 us/op 1.05
prioritizePeers score 0:0 att 64-1 sync 4-1 799.17 us/op 934.25 us/op 0.86
array of 16000 items push then shift 1.2917 us/op 1.6587 us/op 0.78
LinkedList of 16000 items push then shift 8.2790 ns/op 7.5550 ns/op 1.10
array of 16000 items push then pop 91.002 ns/op 145.47 ns/op 0.63
LinkedList of 16000 items push then pop 6.6000 ns/op 7.4430 ns/op 0.89
array of 24000 items push then shift 1.9112 us/op 2.4685 us/op 0.77
LinkedList of 24000 items push then shift 6.3900 ns/op 7.7110 ns/op 0.83
array of 24000 items push then pop 119.47 ns/op 145.96 ns/op 0.82
LinkedList of 24000 items push then pop 6.2170 ns/op 7.7940 ns/op 0.80
intersect bitArray bitLen 8 5.5900 ns/op 6.6380 ns/op 0.84
intersect array and set length 8 37.885 ns/op 47.909 ns/op 0.79
intersect bitArray bitLen 128 26.790 ns/op 29.394 ns/op 0.91
intersect array and set length 128 575.50 ns/op 687.80 ns/op 0.84
bitArray.getTrueBitIndexes() bitLen 128 2.2660 us/op 2.0120 us/op 1.13
bitArray.getTrueBitIndexes() bitLen 248 3.9840 us/op 3.8600 us/op 1.03
bitArray.getTrueBitIndexes() bitLen 512 8.8720 us/op 8.1200 us/op 1.09
Buffer.concat 32 items 1.0840 us/op 932.00 ns/op 1.16
Uint8Array.set 32 items 2.0190 us/op 1.5410 us/op 1.31
Buffer.copy 2.3820 us/op 1.7400 us/op 1.37
Uint8Array.set - with subarray 3.0100 us/op 2.7380 us/op 1.10
Uint8Array.set - without subarray 1.6870 us/op 1.7480 us/op 0.97
getUint32 - dataview 494.00 ns/op 251.00 ns/op 1.97
getUint32 - manual 427.00 ns/op 162.00 ns/op 2.64
Set add up to 64 items then delete first 2.0072 us/op 2.2052 us/op 0.91
OrderedSet add up to 64 items then delete first 2.8315 us/op 3.2819 us/op 0.86
Set add up to 64 items then delete last 2.0557 us/op 2.5264 us/op 0.81
OrderedSet add up to 64 items then delete last 3.2019 us/op 3.7398 us/op 0.86
Set add up to 64 items then delete middle 2.0953 us/op 2.5254 us/op 0.83
OrderedSet add up to 64 items then delete middle 4.8585 us/op 5.2466 us/op 0.93
Set add up to 128 items then delete first 4.0090 us/op 5.0441 us/op 0.79
OrderedSet add up to 128 items then delete first 6.0444 us/op 7.8456 us/op 0.77
Set add up to 128 items then delete last 3.9609 us/op 4.9242 us/op 0.80
OrderedSet add up to 128 items then delete last 6.1423 us/op 7.3923 us/op 0.83
Set add up to 128 items then delete middle 3.9219 us/op 4.8184 us/op 0.81
OrderedSet add up to 128 items then delete middle 12.124 us/op 13.760 us/op 0.88
Set add up to 256 items then delete first 7.9687 us/op 10.572 us/op 0.75
OrderedSet add up to 256 items then delete first 12.237 us/op 15.613 us/op 0.78
Set add up to 256 items then delete last 7.9172 us/op 9.5145 us/op 0.83
OrderedSet add up to 256 items then delete last 12.716 us/op 14.024 us/op 0.91
Set add up to 256 items then delete middle 7.6509 us/op 9.3054 us/op 0.82
OrderedSet add up to 256 items then delete middle 34.870 us/op 40.017 us/op 0.87
transfer serialized Status (84 B) 1.4140 us/op 1.2670 us/op 1.12
copy serialized Status (84 B) 1.2640 us/op 1.0680 us/op 1.18
transfer serialized SignedVoluntaryExit (112 B) 1.5850 us/op 1.3450 us/op 1.18
copy serialized SignedVoluntaryExit (112 B) 1.3950 us/op 1.1390 us/op 1.22
transfer serialized ProposerSlashing (416 B) 2.1130 us/op 1.5160 us/op 1.39
copy serialized ProposerSlashing (416 B) 1.9100 us/op 1.9120 us/op 1.00
transfer serialized Attestation (485 B) 1.8930 us/op 1.8730 us/op 1.01
copy serialized Attestation (485 B) 1.5780 us/op 1.6680 us/op 0.95
transfer serialized AttesterSlashing (33232 B) 1.7950 us/op 2.5780 us/op 0.70
copy serialized AttesterSlashing (33232 B) 5.8160 us/op 4.9710 us/op 1.17
transfer serialized Small SignedBeaconBlock (128000 B) 1.8860 us/op 2.0860 us/op 0.90
copy serialized Small SignedBeaconBlock (128000 B) 15.808 us/op 15.635 us/op 1.01
transfer serialized Avg SignedBeaconBlock (200000 B) 2.2240 us/op 2.8540 us/op 0.78
copy serialized Avg SignedBeaconBlock (200000 B) 21.715 us/op 20.508 us/op 1.06
transfer serialized BlobsSidecar (524380 B) 2.2230 us/op 2.1800 us/op 1.02
copy serialized BlobsSidecar (524380 B) 120.49 us/op 93.620 us/op 1.29
transfer serialized Big SignedBeaconBlock (1000000 B) 2.6200 us/op 2.4690 us/op 1.06
copy serialized Big SignedBeaconBlock (1000000 B) 150.04 us/op 154.68 us/op 0.97
pass gossip attestations to forkchoice per slot 2.4224 ms/op 2.7914 ms/op 0.87
forkChoice updateHead vc 100000 bc 64 eq 0 413.63 us/op 611.82 us/op 0.68
forkChoice updateHead vc 600000 bc 64 eq 0 2.1273 ms/op 3.5536 ms/op 0.60
forkChoice updateHead vc 1000000 bc 64 eq 0 4.0037 ms/op 4.7344 ms/op 0.85
forkChoice updateHead vc 600000 bc 320 eq 0 4.2956 ms/op 2.7598 ms/op 1.56
forkChoice updateHead vc 600000 bc 1200 eq 0 2.4966 ms/op 2.8303 ms/op 0.88
forkChoice updateHead vc 600000 bc 7200 eq 0 2.6296 ms/op 3.1648 ms/op 0.83
forkChoice updateHead vc 600000 bc 64 eq 1000 9.4757 ms/op 10.061 ms/op 0.94
forkChoice updateHead vc 600000 bc 64 eq 10000 9.4293 ms/op 10.509 ms/op 0.90
forkChoice updateHead vc 600000 bc 64 eq 300000 12.795 ms/op 13.348 ms/op 0.96
computeDeltas 500000 validators 300 proto nodes 3.3650 ms/op 3.9390 ms/op 0.85
computeDeltas 500000 validators 1200 proto nodes 3.4264 ms/op 4.0326 ms/op 0.85
computeDeltas 500000 validators 7200 proto nodes 3.4671 ms/op 3.9571 ms/op 0.88
computeDeltas 750000 validators 300 proto nodes 5.1555 ms/op 6.0330 ms/op 0.85
computeDeltas 750000 validators 1200 proto nodes 5.0545 ms/op 6.1541 ms/op 0.82
computeDeltas 750000 validators 7200 proto nodes 6.6055 ms/op 6.2275 ms/op 1.06
computeDeltas 1400000 validators 300 proto nodes 12.014 ms/op 11.587 ms/op 1.04
computeDeltas 1400000 validators 1200 proto nodes 8.9983 ms/op 11.649 ms/op 0.77
computeDeltas 1400000 validators 7200 proto nodes 8.9293 ms/op 11.614 ms/op 0.77
computeDeltas 2100000 validators 300 proto nodes 13.722 ms/op 17.616 ms/op 0.78
computeDeltas 2100000 validators 1200 proto nodes 13.915 ms/op 17.409 ms/op 0.80
computeDeltas 2100000 validators 7200 proto nodes 14.096 ms/op 17.989 ms/op 0.78
altair processAttestation - 250000 vs - 7PWei normalcase 1.7621 ms/op 1.6642 ms/op 1.06
altair processAttestation - 250000 vs - 7PWei worstcase 2.6339 ms/op 2.5261 ms/op 1.04
altair processAttestation - setStatus - 1/6 committees join 75.315 us/op 93.740 us/op 0.80
altair processAttestation - setStatus - 1/3 committees join 142.58 us/op 174.90 us/op 0.82
altair processAttestation - setStatus - 1/2 committees join 198.74 us/op 249.59 us/op 0.80
altair processAttestation - setStatus - 2/3 committees join 257.58 us/op 328.97 us/op 0.78
altair processAttestation - setStatus - 4/5 committees join 407.05 us/op 483.20 us/op 0.84
altair processAttestation - setStatus - 100% committees join 477.24 us/op 575.41 us/op 0.83
altair processBlock - 250000 vs - 7PWei normalcase 6.7551 ms/op 5.7144 ms/op 1.18
altair processBlock - 250000 vs - 7PWei normalcase hashState 23.429 ms/op 25.768 ms/op 0.91
altair processBlock - 250000 vs - 7PWei worstcase 36.302 ms/op 36.829 ms/op 0.99
altair processBlock - 250000 vs - 7PWei worstcase hashState 84.560 ms/op 73.998 ms/op 1.14
phase0 processBlock - 250000 vs - 7PWei normalcase 1.7252 ms/op 2.4303 ms/op 0.71
phase0 processBlock - 250000 vs - 7PWei worstcase 26.368 ms/op 25.598 ms/op 1.03
altair processEth1Data - 250000 vs - 7PWei normalcase 252.09 us/op 337.42 us/op 0.75
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 4.6240 us/op 5.8120 us/op 0.80
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 31.337 us/op 36.373 us/op 0.86
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 8.3770 us/op 10.710 us/op 0.78
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 5.4450 us/op 7.1860 us/op 0.76
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 122.29 us/op 172.08 us/op 0.71
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 805.45 us/op 1.6278 ms/op 0.49
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 1.2159 ms/op 1.6714 ms/op 0.73
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 1.1302 ms/op 1.4420 ms/op 0.78
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 2.9472 ms/op 3.5320 ms/op 0.83
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 1.3215 ms/op 2.1378 ms/op 0.62
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 3.3708 ms/op 3.7022 ms/op 0.91
Tree 40 250000 create 200.33 ms/op 222.91 ms/op 0.90
Tree 40 250000 get(125000) 120.42 ns/op 155.08 ns/op 0.78
Tree 40 250000 set(125000) 601.38 ns/op 683.69 ns/op 0.88
Tree 40 250000 toArray() 17.802 ms/op 20.245 ms/op 0.88
Tree 40 250000 iterate all - toArray() + loop 18.379 ms/op 19.674 ms/op 0.93
Tree 40 250000 iterate all - get(i) 51.200 ms/op 55.397 ms/op 0.92
Array 250000 create 3.4446 ms/op 2.8607 ms/op 1.20
Array 250000 clone - spread 1.4062 ms/op 1.4130 ms/op 1.00
Array 250000 get(125000) 0.61900 ns/op 0.42800 ns/op 1.45
Array 250000 set(125000) 0.59000 ns/op 0.44500 ns/op 1.33
Array 250000 iterate all - loop 76.401 us/op 84.961 us/op 0.90
phase0 afterProcessEpoch - 250000 vs - 7PWei 45.176 ms/op 50.721 ms/op 0.89
Array.fill - length 1000000 2.6905 ms/op 3.5051 ms/op 0.77
Array push - length 1000000 17.020 ms/op 17.706 ms/op 0.96
Array.get 0.26867 ns/op 0.27539 ns/op 0.98
Uint8Array.get 0.34108 ns/op 0.43945 ns/op 0.78
phase0 beforeProcessEpoch - 250000 vs - 7PWei 18.437 ms/op 18.093 ms/op 1.02
altair processEpoch - mainnet_e81889 242.96 ms/op 278.19 ms/op 0.87
mainnet_e81889 - altair beforeProcessEpoch 19.432 ms/op 20.030 ms/op 0.97
mainnet_e81889 - altair processJustificationAndFinalization 11.804 us/op 14.213 us/op 0.83
mainnet_e81889 - altair processInactivityUpdates 4.8352 ms/op 5.7311 ms/op 0.84
mainnet_e81889 - altair processRewardsAndPenalties 42.671 ms/op 55.869 ms/op 0.76
mainnet_e81889 - altair processRegistryUpdates 1.7990 us/op 2.2930 us/op 0.78
mainnet_e81889 - altair processSlashings 786.00 ns/op 449.00 ns/op 1.75
mainnet_e81889 - altair processEth1DataReset 672.00 ns/op 773.00 ns/op 0.87
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.4130 ms/op 3.2627 ms/op 0.43
mainnet_e81889 - altair processSlashingsReset 2.2680 us/op 10.908 us/op 0.21
mainnet_e81889 - altair processRandaoMixesReset 2.7320 us/op 7.4220 us/op 0.37
mainnet_e81889 - altair processHistoricalRootsUpdate 736.00 ns/op 1.7530 us/op 0.42
mainnet_e81889 - altair processParticipationFlagUpdates 1.5510 us/op 8.6660 us/op 0.18
mainnet_e81889 - altair processSyncCommitteeUpdates 649.00 ns/op 1.6530 us/op 0.39
mainnet_e81889 - altair afterProcessEpoch 42.551 ms/op 58.071 ms/op 0.73
capella processEpoch - mainnet_e217614 968.56 ms/op 1.5775 s/op 0.61
mainnet_e217614 - capella beforeProcessEpoch 67.254 ms/op 151.79 ms/op 0.44
mainnet_e217614 - capella processJustificationAndFinalization 21.654 us/op 43.174 us/op 0.50
mainnet_e217614 - capella processInactivityUpdates 16.539 ms/op 34.807 ms/op 0.48
mainnet_e217614 - capella processRewardsAndPenalties 245.71 ms/op 354.85 ms/op 0.69
mainnet_e217614 - capella processRegistryUpdates 6.6890 us/op 31.060 us/op 0.22
mainnet_e217614 - capella processSlashings 734.00 ns/op 668.00 ns/op 1.10
mainnet_e217614 - capella processEth1DataReset 610.00 ns/op 575.00 ns/op 1.06
mainnet_e217614 - capella processEffectiveBalanceUpdates 14.508 ms/op 12.854 ms/op 1.13
mainnet_e217614 - capella processSlashingsReset 2.1360 us/op 3.5150 us/op 0.61
mainnet_e217614 - capella processRandaoMixesReset 2.8930 us/op 3.6510 us/op 0.79
mainnet_e217614 - capella processHistoricalRootsUpdate 667.00 ns/op 2.0300 us/op 0.33
mainnet_e217614 - capella processParticipationFlagUpdates 1.2970 us/op 7.9960 us/op 0.16
mainnet_e217614 - capella afterProcessEpoch 104.68 ms/op 142.00 ms/op 0.74
phase0 processEpoch - mainnet_e58758 349.50 ms/op 343.46 ms/op 1.02
mainnet_e58758 - phase0 beforeProcessEpoch 72.670 ms/op 102.09 ms/op 0.71
mainnet_e58758 - phase0 processJustificationAndFinalization 12.629 us/op 37.066 us/op 0.34
mainnet_e58758 - phase0 processRewardsAndPenalties 28.703 ms/op 48.583 ms/op 0.59
mainnet_e58758 - phase0 processRegistryUpdates 5.7560 us/op 16.297 us/op 0.35
mainnet_e58758 - phase0 processSlashings 692.00 ns/op 789.00 ns/op 0.88
mainnet_e58758 - phase0 processEth1DataReset 640.00 ns/op 1.5690 us/op 0.41
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 1.3633 ms/op 1.9013 ms/op 0.72
mainnet_e58758 - phase0 processSlashingsReset 2.3600 us/op 3.4600 us/op 0.68
mainnet_e58758 - phase0 processRandaoMixesReset 4.3430 us/op 5.2280 us/op 0.83
mainnet_e58758 - phase0 processHistoricalRootsUpdate 685.00 ns/op 845.00 ns/op 0.81
mainnet_e58758 - phase0 processParticipationRecordUpdates 4.8470 us/op 7.9580 us/op 0.61
mainnet_e58758 - phase0 afterProcessEpoch 35.978 ms/op 49.276 ms/op 0.73
phase0 processEffectiveBalanceUpdates - 250000 normalcase 969.36 us/op 2.4720 ms/op 0.39
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.4956 ms/op 9.6080 ms/op 0.16
altair processInactivityUpdates - 250000 normalcase 15.886 ms/op 33.898 ms/op 0.47
altair processInactivityUpdates - 250000 worstcase 17.036 ms/op 29.788 ms/op 0.57
phase0 processRegistryUpdates - 250000 normalcase 5.1380 us/op 17.230 us/op 0.30
phase0 processRegistryUpdates - 250000 badcase_full_deposits 297.00 us/op 425.31 us/op 0.70
phase0 processRegistryUpdates - 250000 worstcase 0.5 121.03 ms/op 131.11 ms/op 0.92
altair processRewardsAndPenalties - 250000 normalcase 44.141 ms/op 51.527 ms/op 0.86
altair processRewardsAndPenalties - 250000 worstcase 44.234 ms/op 61.038 ms/op 0.72
phase0 getAttestationDeltas - 250000 normalcase 6.3298 ms/op 7.6217 ms/op 0.83
phase0 getAttestationDeltas - 250000 worstcase 5.9494 ms/op 7.3581 ms/op 0.81
phase0 processSlashings - 250000 worstcase 81.878 us/op 126.23 us/op 0.65
altair processSyncCommitteeUpdates - 250000 101.21 ms/op 127.70 ms/op 0.79
BeaconState.hashTreeRoot - No change 441.00 ns/op 236.00 ns/op 1.87
BeaconState.hashTreeRoot - 1 full validator 105.12 us/op 122.71 us/op 0.86
BeaconState.hashTreeRoot - 32 full validator 1.0164 ms/op 1.0481 ms/op 0.97
BeaconState.hashTreeRoot - 512 full validator 9.4457 ms/op 15.550 ms/op 0.61
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 120.06 us/op 185.88 us/op 0.65
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 1.8823 ms/op 2.7515 ms/op 0.68
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 14.682 ms/op 41.677 ms/op 0.35
BeaconState.hashTreeRoot - 1 balances 78.329 us/op 146.63 us/op 0.53
BeaconState.hashTreeRoot - 32 balances 602.53 us/op 1.2319 ms/op 0.49
BeaconState.hashTreeRoot - 512 balances 5.6112 ms/op 12.863 ms/op 0.44
BeaconState.hashTreeRoot - 250000 balances 134.99 ms/op 170.05 ms/op 0.79
aggregationBits - 2048 els - zipIndexesInBitList 21.498 us/op 38.825 us/op 0.55
byteArrayEquals 32 46.492 ns/op 58.570 ns/op 0.79
Buffer.compare 32 15.056 ns/op 18.470 ns/op 0.82
byteArrayEquals 1024 1.2161 us/op 1.6357 us/op 0.74
Buffer.compare 1024 22.804 ns/op 26.619 ns/op 0.86
byteArrayEquals 16384 19.173 us/op 27.011 us/op 0.71
Buffer.compare 16384 176.74 ns/op 229.47 ns/op 0.77
byteArrayEquals 123687377 147.58 ms/op 195.33 ms/op 0.76
Buffer.compare 123687377 5.5635 ms/op 7.0265 ms/op 0.79
byteArrayEquals 32 - diff last byte 45.044 ns/op 54.081 ns/op 0.83
Buffer.compare 32 - diff last byte 14.794 ns/op 18.651 ns/op 0.79
byteArrayEquals 1024 - diff last byte 1.1935 us/op 1.6322 us/op 0.73
Buffer.compare 1024 - diff last byte 22.618 ns/op 27.193 ns/op 0.83
byteArrayEquals 16384 - diff last byte 18.978 us/op 25.724 us/op 0.74
Buffer.compare 16384 - diff last byte 188.30 ns/op 209.10 ns/op 0.90
byteArrayEquals 123687377 - diff last byte 148.66 ms/op 191.05 ms/op 0.78
Buffer.compare 123687377 - diff last byte 5.3309 ms/op 6.4105 ms/op 0.83
byteArrayEquals 32 - random bytes 4.8360 ns/op 5.1820 ns/op 0.93
Buffer.compare 32 - random bytes 16.138 ns/op 16.991 ns/op 0.95
byteArrayEquals 1024 - random bytes 4.8380 ns/op 5.1550 ns/op 0.94
Buffer.compare 1024 - random bytes 16.297 ns/op 17.005 ns/op 0.96
byteArrayEquals 16384 - random bytes 4.8670 ns/op 5.1230 ns/op 0.95
Buffer.compare 16384 - random bytes 16.012 ns/op 17.005 ns/op 0.94
byteArrayEquals 123687377 - random bytes 7.6500 ns/op 6.4900 ns/op 1.18
Buffer.compare 123687377 - random bytes 18.970 ns/op 18.330 ns/op 1.03
regular array get 100000 times 29.404 us/op 34.921 us/op 0.84
wrappedArray get 100000 times 29.046 us/op 33.041 us/op 0.88
arrayWithProxy get 100000 times 9.2053 ms/op 13.143 ms/op 0.70
ssz.Root.equals 37.491 ns/op 46.250 ns/op 0.81
byteArrayEquals 40.324 ns/op 45.401 ns/op 0.89
Buffer.compare 8.4860 ns/op 10.449 ns/op 0.81
processSlot - 1 slots 11.190 us/op 18.034 us/op 0.62
processSlot - 32 slots 2.3409 ms/op 3.0447 ms/op 0.77
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 42.505 ms/op 41.504 ms/op 1.02
getCommitteeAssignments - req 1 vs - 250000 vc 1.8130 ms/op 2.0974 ms/op 0.86
getCommitteeAssignments - req 100 vs - 250000 vc 3.5796 ms/op 4.0071 ms/op 0.89
getCommitteeAssignments - req 1000 vs - 250000 vc 3.7864 ms/op 4.2799 ms/op 0.88
findModifiedValidators - 10000 modified validators 235.78 ms/op 238.01 ms/op 0.99
findModifiedValidators - 1000 modified validators 157.88 ms/op 167.17 ms/op 0.94
findModifiedValidators - 100 modified validators 144.55 ms/op 164.46 ms/op 0.88
findModifiedValidators - 10 modified validators 137.89 ms/op 165.15 ms/op 0.83
findModifiedValidators - 1 modified validators 133.75 ms/op 175.33 ms/op 0.76
findModifiedValidators - no difference 144.60 ms/op 162.60 ms/op 0.89
compare ViewDUs 3.0240 s/op 3.1299 s/op 0.97
compare each validator Uint8Array 1.3200 s/op 1.6158 s/op 0.82
compare ViewDU to Uint8Array 1.1615 s/op 957.35 ms/op 1.21
migrate state 1000000 validators, 24 modified, 0 new 779.44 ms/op 758.24 ms/op 1.03
migrate state 1000000 validators, 1700 modified, 1000 new 931.92 ms/op 1.0478 s/op 0.89
migrate state 1000000 validators, 3400 modified, 2000 new 1.0995 s/op 1.2439 s/op 0.88
migrate state 1500000 validators, 24 modified, 0 new 766.50 ms/op 779.86 ms/op 0.98
migrate state 1500000 validators, 1700 modified, 1000 new 1.0015 s/op 925.59 ms/op 1.08
migrate state 1500000 validators, 3400 modified, 2000 new 1.1812 s/op 1.2526 s/op 0.94
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 5.9000 ns/op 4.6100 ns/op 1.28
state getBlockRootAtSlot - 250000 vs - 7PWei 793.74 ns/op 763.16 ns/op 1.04
computeProposers - vc 250000 6.1101 ms/op 7.9138 ms/op 0.77
computeEpochShuffling - vc 250000 35.297 ms/op 41.797 ms/op 0.84
getNextSyncCommittee - vc 250000 109.84 ms/op 127.69 ms/op 0.86
computeSigningRoot for AttestationData 25.169 us/op 22.675 us/op 1.11
hash AttestationData serialized data then Buffer.toString(base64) 1.2042 us/op 1.5383 us/op 0.78
toHexString serialized data 765.83 ns/op 880.39 ns/op 0.87
Buffer.toString(base64) 121.39 ns/op 173.42 ns/op 0.70
nodejs block root to RootHex using toHex 105.39 ns/op 146.68 ns/op 0.72
nodejs block root to RootHex using toRootHex 69.031 ns/op 87.576 ns/op 0.79
browser block root to RootHex using the deprecated toHexString 195.16 ns/op 225.20 ns/op 0.87
browser block root to RootHex using toHex 154.52 ns/op 180.01 ns/op 0.86
browser block root to RootHex using toRootHex 140.91 ns/op 157.34 ns/op 0.90

by benchmarkbot/action

@wemeetagain wemeetagain merged commit b5c6043 into unstable Oct 14, 2024
20 checks passed
@wemeetagain wemeetagain deleted the te/improve_queued_attestations_metric branch October 14, 2024 13:05
philknows pushed a commit that referenced this pull request Oct 18, 2024
@wemeetagain
Copy link
Member

🎉 This PR is included in v1.23.0 🎉

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.

Inconsistent queued attestations metric
2 participants