-
-
Notifications
You must be signed in to change notification settings - Fork 414
fix: not throw error in removeEagerlyPersistedBlockInputs #8472
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: not throw error in removeEagerlyPersistedBlockInputs #8472
Conversation
Summary of ChangesHello @twoeths, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request addresses a specific issue where the system would incorrectly throw an error during the removal of eagerly persisted block inputs. The error occurred when these inputs did not have any associated custody columns, a state that is considered normal and should not trigger an exception. The change modifies the conditional logic to correctly handle this scenario, ensuring that the pruning process continues without interruption and preventing the database from potentially growing due to failed operations. Highlights
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request addresses a bug in removeEagerlyPersistedBlockInputs where an error was thrown during the cleanup of block inputs that had no persisted custody columns. The original implementation performed a strict check on the number of columns, which was inconsistent with the writing logic and caused errors in valid scenarios, preventing database pruning. The fix removes this strict validation and instead only schedules columns for deletion if they actually exist. This change is correct, makes the cleanup process more robust, and ensures that orphaned data is properly removed from the database.
|
| Benchmark suite | Current: f43bb4c | Previous: 39be8f0 | Ratio |
|---|---|---|---|
| cached computeShuffledIndex 2000000 validators | 50.646 s/op | 14.331 s/op | 3.53 |
Full benchmark results
| Benchmark suite | Current: f43bb4c | Previous: 39be8f0 | Ratio |
|---|---|---|---|
| getPubkeys - index2pubkey - req 1000 vs - 250000 vc | 967.50 us/op | 742.48 us/op | 1.30 |
| getPubkeys - validatorsArr - req 1000 vs - 250000 vc | 35.928 us/op | 30.211 us/op | 1.19 |
| BLS verify - blst | 804.91 us/op | 874.34 us/op | 0.92 |
| BLS verifyMultipleSignatures 3 - blst | 1.2395 ms/op | 1.2771 ms/op | 0.97 |
| BLS verifyMultipleSignatures 8 - blst | 1.6897 ms/op | 2.0660 ms/op | 0.82 |
| BLS verifyMultipleSignatures 32 - blst | 4.9287 ms/op | 4.4281 ms/op | 1.11 |
| BLS verifyMultipleSignatures 64 - blst | 10.221 ms/op | 8.1187 ms/op | 1.26 |
| BLS verifyMultipleSignatures 128 - blst | 17.709 ms/op | 15.954 ms/op | 1.11 |
| BLS deserializing 10000 signatures | 706.29 ms/op | 617.41 ms/op | 1.14 |
| BLS deserializing 100000 signatures | 7.1318 s/op | 6.0087 s/op | 1.19 |
| BLS verifyMultipleSignatures - same message - 3 - blst | 1.1107 ms/op | 941.98 us/op | 1.18 |
| BLS verifyMultipleSignatures - same message - 8 - blst | 1.1248 ms/op | 1.0724 ms/op | 1.05 |
| BLS verifyMultipleSignatures - same message - 32 - blst | 1.9034 ms/op | 1.6997 ms/op | 1.12 |
| BLS verifyMultipleSignatures - same message - 64 - blst | 2.7897 ms/op | 2.4543 ms/op | 1.14 |
| BLS verifyMultipleSignatures - same message - 128 - blst | 4.5226 ms/op | 4.0034 ms/op | 1.13 |
| BLS aggregatePubkeys 32 - blst | 20.097 us/op | 17.063 us/op | 1.18 |
| BLS aggregatePubkeys 128 - blst | 72.015 us/op | 59.210 us/op | 1.22 |
| notSeenSlots=1 numMissedVotes=1 numBadVotes=10 | 54.042 ms/op | 40.965 ms/op | 1.32 |
| notSeenSlots=1 numMissedVotes=0 numBadVotes=4 | 48.023 ms/op | 34.109 ms/op | 1.41 |
| notSeenSlots=2 numMissedVotes=1 numBadVotes=10 | 38.210 ms/op | 39.831 ms/op | 0.96 |
| getSlashingsAndExits - default max | 74.998 us/op | 49.014 us/op | 1.53 |
| getSlashingsAndExits - 2k | 311.76 us/op | 264.40 us/op | 1.18 |
| isKnown best case - 1 super set check | 221.00 ns/op | 386.00 ns/op | 0.57 |
| isKnown normal case - 2 super set checks | 217.00 ns/op | 383.00 ns/op | 0.57 |
| isKnown worse case - 16 super set checks | 216.00 ns/op | 382.00 ns/op | 0.57 |
| InMemoryCheckpointStateCache - add get delete | 2.5620 us/op | 2.4250 us/op | 1.06 |
| validate api signedAggregateAndProof - struct | 1.4605 ms/op | 1.9365 ms/op | 0.75 |
| validate gossip signedAggregateAndProof - struct | 1.4659 ms/op | 1.9379 ms/op | 0.76 |
| batch validate gossip attestation - vc 640000 - chunk 32 | 117.42 us/op | 104.08 us/op | 1.13 |
| batch validate gossip attestation - vc 640000 - chunk 64 | 102.95 us/op | 92.011 us/op | 1.12 |
| batch validate gossip attestation - vc 640000 - chunk 128 | 96.237 us/op | 83.963 us/op | 1.15 |
| batch validate gossip attestation - vc 640000 - chunk 256 | 97.516 us/op | 82.147 us/op | 1.19 |
| pickEth1Vote - no votes | 1.0443 ms/op | 816.68 us/op | 1.28 |
| pickEth1Vote - max votes | 5.3200 ms/op | 4.3938 ms/op | 1.21 |
| pickEth1Vote - Eth1Data hashTreeRoot value x2048 | 10.469 ms/op | 8.3652 ms/op | 1.25 |
| pickEth1Vote - Eth1Data hashTreeRoot tree x2048 | 13.826 ms/op | 10.767 ms/op | 1.28 |
| pickEth1Vote - Eth1Data fastSerialize value x2048 | 481.21 us/op | 379.00 us/op | 1.27 |
| pickEth1Vote - Eth1Data fastSerialize tree x2048 | 3.1477 ms/op | 1.9435 ms/op | 1.62 |
| bytes32 toHexString | 371.00 ns/op | 555.00 ns/op | 0.67 |
| bytes32 Buffer.toString(hex) | 244.00 ns/op | 410.00 ns/op | 0.60 |
| bytes32 Buffer.toString(hex) from Uint8Array | 326.00 ns/op | 490.00 ns/op | 0.67 |
| bytes32 Buffer.toString(hex) + 0x | 243.00 ns/op | 407.00 ns/op | 0.60 |
| Object access 1 prop | 0.12400 ns/op | 0.30300 ns/op | 0.41 |
| Map access 1 prop | 0.12700 ns/op | 0.30800 ns/op | 0.41 |
| Object get x1000 | 5.8760 ns/op | 5.2670 ns/op | 1.12 |
| Map get x1000 | 6.2910 ns/op | 5.9670 ns/op | 1.05 |
| Object set x1000 | 29.615 ns/op | 18.583 ns/op | 1.59 |
| Map set x1000 | 19.834 ns/op | 16.091 ns/op | 1.23 |
| Return object 10000 times | 0.29210 ns/op | 0.27680 ns/op | 1.06 |
| Throw Error 10000 times | 4.4214 us/op | 3.4330 us/op | 1.29 |
| toHex | 140.17 ns/op | 103.54 ns/op | 1.35 |
| Buffer.from | 131.56 ns/op | 97.357 ns/op | 1.35 |
| shared Buffer | 86.948 ns/op | 68.460 ns/op | 1.27 |
| fastMsgIdFn sha256 / 200 bytes | 2.1740 us/op | 1.9730 us/op | 1.10 |
| fastMsgIdFn h32 xxhash / 200 bytes | 213.00 ns/op | 379.00 ns/op | 0.56 |
| fastMsgIdFn h64 xxhash / 200 bytes | 259.00 ns/op | 426.00 ns/op | 0.61 |
| fastMsgIdFn sha256 / 1000 bytes | 7.3100 us/op | 5.7630 us/op | 1.27 |
| fastMsgIdFn h32 xxhash / 1000 bytes | 346.00 ns/op | 503.00 ns/op | 0.69 |
| fastMsgIdFn h64 xxhash / 1000 bytes | 342.00 ns/op | 504.00 ns/op | 0.68 |
| fastMsgIdFn sha256 / 10000 bytes | 65.587 us/op | 49.506 us/op | 1.32 |
| fastMsgIdFn h32 xxhash / 10000 bytes | 1.8340 us/op | 1.8840 us/op | 0.97 |
| fastMsgIdFn h64 xxhash / 10000 bytes | 1.2160 us/op | 1.3160 us/op | 0.92 |
| send data - 1000 256B messages | 15.188 ms/op | 11.781 ms/op | 1.29 |
| send data - 1000 512B messages | 19.754 ms/op | 17.402 ms/op | 1.14 |
| send data - 1000 1024B messages | 26.658 ms/op | 23.145 ms/op | 1.15 |
| send data - 1000 1200B messages | 23.671 ms/op | 14.564 ms/op | 1.63 |
| send data - 1000 2048B messages | 24.152 ms/op | 14.318 ms/op | 1.69 |
| send data - 1000 4096B messages | 27.487 ms/op | 15.547 ms/op | 1.77 |
| send data - 1000 16384B messages | 45.212 ms/op | 22.687 ms/op | 1.99 |
| send data - 1000 65536B messages | 123.16 ms/op | 61.611 ms/op | 2.00 |
| enrSubnets - fastDeserialize 64 bits | 906.00 ns/op | 961.00 ns/op | 0.94 |
| enrSubnets - ssz BitVector 64 bits | 359.00 ns/op | 489.00 ns/op | 0.73 |
| enrSubnets - fastDeserialize 4 bits | 136.00 ns/op | 308.00 ns/op | 0.44 |
| enrSubnets - ssz BitVector 4 bits | 363.00 ns/op | 490.00 ns/op | 0.74 |
| prioritizePeers score -10:0 att 32-0.1 sync 2-0 | 245.80 us/op | 194.09 us/op | 1.27 |
| prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 | 269.16 us/op | 224.58 us/op | 1.20 |
| prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 | 388.28 us/op | 360.71 us/op | 1.08 |
| prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 | 739.38 us/op | 630.50 us/op | 1.17 |
| prioritizePeers score 0:0 att 64-1 sync 4-1 | 880.47 us/op | 724.42 us/op | 1.22 |
| array of 16000 items push then shift | 1.6658 us/op | 1.2669 us/op | 1.31 |
| LinkedList of 16000 items push then shift | 8.1700 ns/op | 6.5000 ns/op | 1.26 |
| array of 16000 items push then pop | 80.883 ns/op | 62.111 ns/op | 1.30 |
| LinkedList of 16000 items push then pop | 7.7680 ns/op | 6.1880 ns/op | 1.26 |
| array of 24000 items push then shift | 2.4442 us/op | 1.8603 us/op | 1.31 |
| LinkedList of 24000 items push then shift | 8.4480 ns/op | 6.4270 ns/op | 1.31 |
| array of 24000 items push then pop | 102.65 ns/op | 85.494 ns/op | 1.20 |
| LinkedList of 24000 items push then pop | 7.7190 ns/op | 6.1850 ns/op | 1.25 |
| intersect bitArray bitLen 8 | 6.6050 ns/op | 5.6690 ns/op | 1.17 |
| intersect array and set length 8 | 39.245 ns/op | 32.364 ns/op | 1.21 |
| intersect bitArray bitLen 128 | 30.762 ns/op | 26.417 ns/op | 1.16 |
| intersect array and set length 128 | 643.69 ns/op | 542.38 ns/op | 1.19 |
| bitArray.getTrueBitIndexes() bitLen 128 | 1.0260 us/op | 1.1070 us/op | 0.93 |
| bitArray.getTrueBitIndexes() bitLen 248 | 1.8020 us/op | 1.7540 us/op | 1.03 |
| bitArray.getTrueBitIndexes() bitLen 512 | 3.7850 us/op | 3.2310 us/op | 1.17 |
| Buffer.concat 32 items | 622.00 ns/op | 783.00 ns/op | 0.79 |
| Uint8Array.set 32 items | 915.00 ns/op | 976.00 ns/op | 0.94 |
| Buffer.copy | 2.0690 us/op | 2.0410 us/op | 1.01 |
| Uint8Array.set - with subarray | 1.5180 us/op | 1.5920 us/op | 0.95 |
| Uint8Array.set - without subarray | 852.00 ns/op | 994.00 ns/op | 0.86 |
| getUint32 - dataview | 202.00 ns/op | 376.00 ns/op | 0.54 |
| getUint32 - manual | 128.00 ns/op | 311.00 ns/op | 0.41 |
| Set add up to 64 items then delete first | 2.3844 us/op | 1.8263 us/op | 1.31 |
| OrderedSet add up to 64 items then delete first | 4.7122 us/op | 2.8668 us/op | 1.64 |
| Set add up to 64 items then delete last | 2.3648 us/op | 2.0742 us/op | 1.14 |
| OrderedSet add up to 64 items then delete last | 5.1433 us/op | 3.1904 us/op | 1.61 |
| Set add up to 64 items then delete middle | 2.8733 us/op | 2.0798 us/op | 1.38 |
| OrderedSet add up to 64 items then delete middle | 6.3450 us/op | 4.6013 us/op | 1.38 |
| Set add up to 128 items then delete first | 5.8258 us/op | 4.1200 us/op | 1.41 |
| OrderedSet add up to 128 items then delete first | 8.8324 us/op | 6.4965 us/op | 1.36 |
| Set add up to 128 items then delete last | 5.3741 us/op | 3.9821 us/op | 1.35 |
| OrderedSet add up to 128 items then delete last | 10.496 us/op | 6.1599 us/op | 1.70 |
| Set add up to 128 items then delete middle | 5.9908 us/op | 3.9792 us/op | 1.51 |
| OrderedSet add up to 128 items then delete middle | 15.664 us/op | 11.829 us/op | 1.32 |
| Set add up to 256 items then delete first | 13.679 us/op | 8.0610 us/op | 1.70 |
| OrderedSet add up to 256 items then delete first | 19.246 us/op | 12.636 us/op | 1.52 |
| Set add up to 256 items then delete last | 10.977 us/op | 7.8158 us/op | 1.40 |
| OrderedSet add up to 256 items then delete last | 19.153 us/op | 12.061 us/op | 1.59 |
| Set add up to 256 items then delete middle | 10.953 us/op | 7.8221 us/op | 1.40 |
| OrderedSet add up to 256 items then delete middle | 45.570 us/op | 34.329 us/op | 1.33 |
| transfer serialized Status (84 B) | 2.2120 us/op | 1.9310 us/op | 1.15 |
| copy serialized Status (84 B) | 1.1650 us/op | 1.1840 us/op | 0.98 |
| transfer serialized SignedVoluntaryExit (112 B) | 2.3040 us/op | 1.9450 us/op | 1.18 |
| copy serialized SignedVoluntaryExit (112 B) | 1.1770 us/op | 1.1790 us/op | 1.00 |
| transfer serialized ProposerSlashing (416 B) | 2.3400 us/op | 2.1080 us/op | 1.11 |
| copy serialized ProposerSlashing (416 B) | 1.2230 us/op | 1.3380 us/op | 0.91 |
| transfer serialized Attestation (485 B) | 2.3230 us/op | 2.0810 us/op | 1.12 |
| copy serialized Attestation (485 B) | 1.2040 us/op | 1.3480 us/op | 0.89 |
| transfer serialized AttesterSlashing (33232 B) | 2.3540 us/op | 2.1470 us/op | 1.10 |
| copy serialized AttesterSlashing (33232 B) | 3.5220 us/op | 2.5340 us/op | 1.39 |
| transfer serialized Small SignedBeaconBlock (128000 B) | 2.8810 us/op | 2.1860 us/op | 1.32 |
| copy serialized Small SignedBeaconBlock (128000 B) | 10.564 us/op | 5.5960 us/op | 1.89 |
| transfer serialized Avg SignedBeaconBlock (200000 B) | 3.2410 us/op | 2.3560 us/op | 1.38 |
| copy serialized Avg SignedBeaconBlock (200000 B) | 16.622 us/op | 8.0400 us/op | 2.07 |
| transfer serialized BlobsSidecar (524380 B) | 3.5310 us/op | 3.0870 us/op | 1.14 |
| copy serialized BlobsSidecar (524380 B) | 67.737 us/op | 95.290 us/op | 0.71 |
| transfer serialized Big SignedBeaconBlock (1000000 B) | 5.4430 us/op | 3.4430 us/op | 1.58 |
| copy serialized Big SignedBeaconBlock (1000000 B) | 227.18 us/op | 114.60 us/op | 1.98 |
| pass gossip attestations to forkchoice per slot | 2.8554 ms/op | 2.3385 ms/op | 1.22 |
| forkChoice updateHead vc 100000 bc 64 eq 0 | 458.69 us/op | 395.20 us/op | 1.16 |
| forkChoice updateHead vc 600000 bc 64 eq 0 | 3.0952 ms/op | 2.3380 ms/op | 1.32 |
| forkChoice updateHead vc 1000000 bc 64 eq 0 | 5.5035 ms/op | 3.8828 ms/op | 1.42 |
| forkChoice updateHead vc 600000 bc 320 eq 0 | 2.9898 ms/op | 2.4376 ms/op | 1.23 |
| forkChoice updateHead vc 600000 bc 1200 eq 0 | 3.3109 ms/op | 2.3889 ms/op | 1.39 |
| forkChoice updateHead vc 600000 bc 7200 eq 0 | 3.3794 ms/op | 2.5309 ms/op | 1.34 |
| forkChoice updateHead vc 600000 bc 64 eq 1000 | 10.824 ms/op | 9.4372 ms/op | 1.15 |
| forkChoice updateHead vc 600000 bc 64 eq 10000 | 10.756 ms/op | 9.3493 ms/op | 1.15 |
| forkChoice updateHead vc 600000 bc 64 eq 300000 | 14.237 ms/op | 11.210 ms/op | 1.27 |
| computeDeltas 500000 validators 300 proto nodes | 4.0780 ms/op | 3.0753 ms/op | 1.33 |
| computeDeltas 500000 validators 1200 proto nodes | 4.0610 ms/op | 3.0793 ms/op | 1.32 |
| computeDeltas 500000 validators 7200 proto nodes | 4.0961 ms/op | 3.0079 ms/op | 1.36 |
| computeDeltas 750000 validators 300 proto nodes | 5.8713 ms/op | 4.6891 ms/op | 1.25 |
| computeDeltas 750000 validators 1200 proto nodes | 6.0289 ms/op | 4.5363 ms/op | 1.33 |
| computeDeltas 750000 validators 7200 proto nodes | 5.9822 ms/op | 4.5426 ms/op | 1.32 |
| computeDeltas 1400000 validators 300 proto nodes | 11.260 ms/op | 8.5766 ms/op | 1.31 |
| computeDeltas 1400000 validators 1200 proto nodes | 11.815 ms/op | 8.4038 ms/op | 1.41 |
| computeDeltas 1400000 validators 7200 proto nodes | 12.018 ms/op | 8.3982 ms/op | 1.43 |
| computeDeltas 2100000 validators 300 proto nodes | 18.888 ms/op | 12.922 ms/op | 1.46 |
| computeDeltas 2100000 validators 1200 proto nodes | 18.800 ms/op | 13.006 ms/op | 1.45 |
| computeDeltas 2100000 validators 7200 proto nodes | 17.476 ms/op | 12.814 ms/op | 1.36 |
| altair processAttestation - 250000 vs - 7PWei normalcase | 2.0546 ms/op | 1.6087 ms/op | 1.28 |
| altair processAttestation - 250000 vs - 7PWei worstcase | 3.0897 ms/op | 2.4484 ms/op | 1.26 |
| altair processAttestation - setStatus - 1/6 committees join | 131.44 us/op | 102.49 us/op | 1.28 |
| altair processAttestation - setStatus - 1/3 committees join | 268.06 us/op | 182.59 us/op | 1.47 |
| altair processAttestation - setStatus - 1/2 committees join | 368.53 us/op | 254.78 us/op | 1.45 |
| altair processAttestation - setStatus - 2/3 committees join | 462.31 us/op | 393.42 us/op | 1.18 |
| altair processAttestation - setStatus - 4/5 committees join | 623.69 us/op | 473.85 us/op | 1.32 |
| altair processAttestation - setStatus - 100% committees join | 739.36 us/op | 546.98 us/op | 1.35 |
| altair processBlock - 250000 vs - 7PWei normalcase | 4.4350 ms/op | 3.8498 ms/op | 1.15 |
| altair processBlock - 250000 vs - 7PWei normalcase hashState | 28.752 ms/op | 30.047 ms/op | 0.96 |
| altair processBlock - 250000 vs - 7PWei worstcase | 35.150 ms/op | 37.640 ms/op | 0.93 |
| altair processBlock - 250000 vs - 7PWei worstcase hashState | 75.331 ms/op | 78.909 ms/op | 0.95 |
| phase0 processBlock - 250000 vs - 7PWei normalcase | 1.6235 ms/op | 1.8807 ms/op | 0.86 |
| phase0 processBlock - 250000 vs - 7PWei worstcase | 22.224 ms/op | 23.965 ms/op | 0.93 |
| altair processEth1Data - 250000 vs - 7PWei normalcase | 337.52 us/op | 258.90 us/op | 1.30 |
| getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 | 6.1610 us/op | 5.6680 us/op | 1.09 |
| getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 | 34.108 us/op | 34.514 us/op | 0.99 |
| getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 | 11.532 us/op | 9.5800 us/op | 1.20 |
| getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 | 7.0000 us/op | 3.7110 us/op | 1.89 |
| getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 | 165.62 us/op | 160.61 us/op | 1.03 |
| getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 | 1.8864 ms/op | 1.2739 ms/op | 1.48 |
| getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 | 2.4688 ms/op | 1.6093 ms/op | 1.53 |
| getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 | 2.3551 ms/op | 1.7055 ms/op | 1.38 |
| getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 | 4.8797 ms/op | 3.6349 ms/op | 1.34 |
| getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 | 2.4743 ms/op | 1.7765 ms/op | 1.39 |
| getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 | 4.6184 ms/op | 3.7079 ms/op | 1.25 |
| Tree 40 250000 create | 434.69 ms/op | 339.97 ms/op | 1.28 |
| Tree 40 250000 get(125000) | 150.24 ns/op | 109.48 ns/op | 1.37 |
| Tree 40 250000 set(125000) | 1.5043 us/op | 1.1701 us/op | 1.29 |
| Tree 40 250000 toArray() | 15.442 ms/op | 12.620 ms/op | 1.22 |
| Tree 40 250000 iterate all - toArray() + loop | 15.600 ms/op | 13.897 ms/op | 1.12 |
| Tree 40 250000 iterate all - get(i) | 55.899 ms/op | 41.235 ms/op | 1.36 |
| Array 250000 create | 2.9569 ms/op | 2.1255 ms/op | 1.39 |
| Array 250000 clone - spread | 826.19 us/op | 625.28 us/op | 1.32 |
| Array 250000 get(125000) | 0.41600 ns/op | 0.52500 ns/op | 0.79 |
| Array 250000 set(125000) | 0.43400 ns/op | 0.53400 ns/op | 0.81 |
| Array 250000 iterate all - loop | 111.43 us/op | 92.614 us/op | 1.20 |
| phase0 afterProcessEpoch - 250000 vs - 7PWei | 42.087 ms/op | 37.573 ms/op | 1.12 |
| Array.fill - length 1000000 | 3.4322 ms/op | 2.6525 ms/op | 1.29 |
| Array push - length 1000000 | 12.965 ms/op | 11.214 ms/op | 1.16 |
| Array.get | 0.28214 ns/op | 0.24580 ns/op | 1.15 |
| Uint8Array.get | 0.45309 ns/op | 0.39178 ns/op | 1.16 |
| phase0 beforeProcessEpoch - 250000 vs - 7PWei | 17.392 ms/op | 17.118 ms/op | 1.02 |
| altair processEpoch - mainnet_e81889 | 239.98 ms/op | 276.69 ms/op | 0.87 |
| mainnet_e81889 - altair beforeProcessEpoch | 19.164 ms/op | 15.085 ms/op | 1.27 |
| mainnet_e81889 - altair processJustificationAndFinalization | 5.4660 us/op | 4.6310 us/op | 1.18 |
| mainnet_e81889 - altair processInactivityUpdates | 4.2669 ms/op | 3.5313 ms/op | 1.21 |
| mainnet_e81889 - altair processRewardsAndPenalties | 35.186 ms/op | 35.774 ms/op | 0.98 |
| mainnet_e81889 - altair processRegistryUpdates | 717.00 ns/op | 850.00 ns/op | 0.84 |
| mainnet_e81889 - altair processSlashings | 181.00 ns/op | 393.00 ns/op | 0.46 |
| mainnet_e81889 - altair processEth1DataReset | 174.00 ns/op | 389.00 ns/op | 0.45 |
| mainnet_e81889 - altair processEffectiveBalanceUpdates | 1.2135 ms/op | 1.1342 ms/op | 1.07 |
| mainnet_e81889 - altair processSlashingsReset | 860.00 ns/op | 984.00 ns/op | 0.87 |
| mainnet_e81889 - altair processRandaoMixesReset | 1.0970 us/op | 1.2010 us/op | 0.91 |
| mainnet_e81889 - altair processHistoricalRootsUpdate | 176.00 ns/op | 391.00 ns/op | 0.45 |
| mainnet_e81889 - altair processParticipationFlagUpdates | 522.00 ns/op | 688.00 ns/op | 0.76 |
| mainnet_e81889 - altair processSyncCommitteeUpdates | 135.00 ns/op | 352.00 ns/op | 0.38 |
| mainnet_e81889 - altair afterProcessEpoch | 45.111 ms/op | 39.453 ms/op | 1.14 |
| capella processEpoch - mainnet_e217614 | 835.54 ms/op | 899.04 ms/op | 0.93 |
| mainnet_e217614 - capella beforeProcessEpoch | 60.577 ms/op | 56.389 ms/op | 1.07 |
| mainnet_e217614 - capella processJustificationAndFinalization | 5.3290 us/op | 4.4060 us/op | 1.21 |
| mainnet_e217614 - capella processInactivityUpdates | 14.344 ms/op | 12.031 ms/op | 1.19 |
| mainnet_e217614 - capella processRewardsAndPenalties | 175.80 ms/op | 189.89 ms/op | 0.93 |
| mainnet_e217614 - capella processRegistryUpdates | 6.2150 us/op | 5.0450 us/op | 1.23 |
| mainnet_e217614 - capella processSlashings | 178.00 ns/op | 386.00 ns/op | 0.46 |
| mainnet_e217614 - capella processEth1DataReset | 172.00 ns/op | 383.00 ns/op | 0.45 |
| mainnet_e217614 - capella processEffectiveBalanceUpdates | 4.2075 ms/op | 3.3378 ms/op | 1.26 |
| mainnet_e217614 - capella processSlashingsReset | 859.00 ns/op | 980.00 ns/op | 0.88 |
| mainnet_e217614 - capella processRandaoMixesReset | 1.1610 us/op | 1.4950 us/op | 0.78 |
| mainnet_e217614 - capella processHistoricalRootsUpdate | 177.00 ns/op | 400.00 ns/op | 0.44 |
| mainnet_e217614 - capella processParticipationFlagUpdates | 523.00 ns/op | 694.00 ns/op | 0.75 |
| mainnet_e217614 - capella afterProcessEpoch | 117.55 ms/op | 100.54 ms/op | 1.17 |
| phase0 processEpoch - mainnet_e58758 | 288.32 ms/op | 264.50 ms/op | 1.09 |
| mainnet_e58758 - phase0 beforeProcessEpoch | 77.212 ms/op | 72.754 ms/op | 1.06 |
| mainnet_e58758 - phase0 processJustificationAndFinalization | 5.6220 us/op | 5.4790 us/op | 1.03 |
| mainnet_e58758 - phase0 processRewardsAndPenalties | 35.367 ms/op | 36.218 ms/op | 0.98 |
| mainnet_e58758 - phase0 processRegistryUpdates | 3.0850 us/op | 3.7090 us/op | 0.83 |
| mainnet_e58758 - phase0 processSlashings | 176.00 ns/op | 394.00 ns/op | 0.45 |
| mainnet_e58758 - phase0 processEth1DataReset | 175.00 ns/op | 388.00 ns/op | 0.45 |
| mainnet_e58758 - phase0 processEffectiveBalanceUpdates | 1.1745 ms/op | 880.60 us/op | 1.33 |
| mainnet_e58758 - phase0 processSlashingsReset | 899.00 ns/op | 1.0880 us/op | 0.83 |
| mainnet_e58758 - phase0 processRandaoMixesReset | 1.1490 us/op | 1.2050 us/op | 0.95 |
| mainnet_e58758 - phase0 processHistoricalRootsUpdate | 174.00 ns/op | 397.00 ns/op | 0.44 |
| mainnet_e58758 - phase0 processParticipationRecordUpdates | 927.00 ns/op | 1.1600 us/op | 0.80 |
| mainnet_e58758 - phase0 afterProcessEpoch | 35.680 ms/op | 31.793 ms/op | 1.12 |
| phase0 processEffectiveBalanceUpdates - 250000 normalcase | 1.3603 ms/op | 936.11 us/op | 1.45 |
| phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 | 1.9459 ms/op | 1.4748 ms/op | 1.32 |
| altair processInactivityUpdates - 250000 normalcase | 16.578 ms/op | 18.120 ms/op | 0.91 |
| altair processInactivityUpdates - 250000 worstcase | 18.646 ms/op | 15.643 ms/op | 1.19 |
| phase0 processRegistryUpdates - 250000 normalcase | 6.5180 us/op | 5.0700 us/op | 1.29 |
| phase0 processRegistryUpdates - 250000 badcase_full_deposits | 257.53 us/op | 277.05 us/op | 0.93 |
| phase0 processRegistryUpdates - 250000 worstcase 0.5 | 103.14 ms/op | 109.41 ms/op | 0.94 |
| altair processRewardsAndPenalties - 250000 normalcase | 28.298 ms/op | 25.186 ms/op | 1.12 |
| altair processRewardsAndPenalties - 250000 worstcase | 25.640 ms/op | 30.421 ms/op | 0.84 |
| phase0 getAttestationDeltas - 250000 normalcase | 7.5756 ms/op | 4.3357 ms/op | 1.75 |
| phase0 getAttestationDeltas - 250000 worstcase | 7.3038 ms/op | 5.1979 ms/op | 1.41 |
| phase0 processSlashings - 250000 worstcase | 89.361 us/op | 83.411 us/op | 1.07 |
| altair processSyncCommitteeUpdates - 250000 | 11.176 ms/op | 9.6011 ms/op | 1.16 |
| BeaconState.hashTreeRoot - No change | 217.00 ns/op | 425.00 ns/op | 0.51 |
| BeaconState.hashTreeRoot - 1 full validator | 75.594 us/op | 71.742 us/op | 1.05 |
| BeaconState.hashTreeRoot - 32 full validator | 869.88 us/op | 989.55 us/op | 0.88 |
| BeaconState.hashTreeRoot - 512 full validator | 11.317 ms/op | 7.0966 ms/op | 1.59 |
| BeaconState.hashTreeRoot - 1 validator.effectiveBalance | 98.196 us/op | 87.519 us/op | 1.12 |
| BeaconState.hashTreeRoot - 32 validator.effectiveBalance | 1.4563 ms/op | 1.5017 ms/op | 0.97 |
| BeaconState.hashTreeRoot - 512 validator.effectiveBalance | 19.425 ms/op | 23.910 ms/op | 0.81 |
| BeaconState.hashTreeRoot - 1 balances | 69.851 us/op | 73.456 us/op | 0.95 |
| BeaconState.hashTreeRoot - 32 balances | 651.34 us/op | 613.42 us/op | 1.06 |
| BeaconState.hashTreeRoot - 512 balances | 7.8391 ms/op | 5.5968 ms/op | 1.40 |
| BeaconState.hashTreeRoot - 250000 balances | 141.50 ms/op | 162.33 ms/op | 0.87 |
| aggregationBits - 2048 els - zipIndexesInBitList | 22.187 us/op | 17.686 us/op | 1.25 |
| byteArrayEquals 32 | 55.290 ns/op | 42.385 ns/op | 1.30 |
| Buffer.compare 32 | 17.691 ns/op | 15.758 ns/op | 1.12 |
| byteArrayEquals 1024 | 1.6348 us/op | 1.2469 us/op | 1.31 |
| Buffer.compare 1024 | 26.359 ns/op | 24.249 ns/op | 1.09 |
| byteArrayEquals 16384 | 26.071 us/op | 19.953 us/op | 1.31 |
| Buffer.compare 16384 | 204.03 ns/op | 172.63 ns/op | 1.18 |
| byteArrayEquals 123687377 | 196.82 ms/op | 151.00 ms/op | 1.30 |
| Buffer.compare 123687377 | 6.8647 ms/op | 4.4533 ms/op | 1.54 |
| byteArrayEquals 32 - diff last byte | 54.013 ns/op | 41.895 ns/op | 1.29 |
| Buffer.compare 32 - diff last byte | 17.920 ns/op | 15.767 ns/op | 1.14 |
| byteArrayEquals 1024 - diff last byte | 1.6301 us/op | 1.2557 us/op | 1.30 |
| Buffer.compare 1024 - diff last byte | 26.585 ns/op | 23.943 ns/op | 1.11 |
| byteArrayEquals 16384 - diff last byte | 25.964 us/op | 20.002 us/op | 1.30 |
| Buffer.compare 16384 - diff last byte | 206.73 ns/op | 194.68 ns/op | 1.06 |
| byteArrayEquals 123687377 - diff last byte | 196.38 ms/op | 148.29 ms/op | 1.32 |
| Buffer.compare 123687377 - diff last byte | 7.0931 ms/op | 4.3284 ms/op | 1.64 |
| byteArrayEquals 32 - random bytes | 5.2800 ns/op | 4.8720 ns/op | 1.08 |
| Buffer.compare 32 - random bytes | 17.641 ns/op | 15.851 ns/op | 1.11 |
| byteArrayEquals 1024 - random bytes | 5.2470 ns/op | 4.8340 ns/op | 1.09 |
| Buffer.compare 1024 - random bytes | 17.573 ns/op | 15.085 ns/op | 1.16 |
| byteArrayEquals 16384 - random bytes | 5.4280 ns/op | 4.7260 ns/op | 1.15 |
| Buffer.compare 16384 - random bytes | 17.589 ns/op | 14.892 ns/op | 1.18 |
| byteArrayEquals 123687377 - random bytes | 6.6600 ns/op | 7.6800 ns/op | 0.87 |
| Buffer.compare 123687377 - random bytes | 18.780 ns/op | 18.900 ns/op | 0.99 |
| regular array get 100000 times | 32.916 us/op | 40.289 us/op | 0.82 |
| wrappedArray get 100000 times | 33.392 us/op | 40.491 us/op | 0.82 |
| arrayWithProxy get 100000 times | 12.980 ms/op | 9.3924 ms/op | 1.38 |
| ssz.Root.equals | 46.683 ns/op | 39.212 ns/op | 1.19 |
| byteArrayEquals | 45.757 ns/op | 38.657 ns/op | 1.18 |
| Buffer.compare | 10.440 ns/op | 9.4240 ns/op | 1.11 |
| processSlot - 1 slots | 10.584 us/op | 8.6860 us/op | 1.22 |
| processSlot - 32 slots | 1.9205 ms/op | 1.9913 ms/op | 0.96 |
| getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei | 2.8926 ms/op | 2.0751 ms/op | 1.39 |
| getCommitteeAssignments - req 1 vs - 250000 vc | 2.1524 ms/op | 1.7377 ms/op | 1.24 |
| getCommitteeAssignments - req 100 vs - 250000 vc | 4.5953 ms/op | 3.4374 ms/op | 1.34 |
| getCommitteeAssignments - req 1000 vs - 250000 vc | 4.5400 ms/op | 3.6601 ms/op | 1.24 |
| findModifiedValidators - 10000 modified validators | 751.76 ms/op | 777.78 ms/op | 0.97 |
| findModifiedValidators - 1000 modified validators | 727.80 ms/op | 683.51 ms/op | 1.06 |
| findModifiedValidators - 100 modified validators | 303.55 ms/op | 222.82 ms/op | 1.36 |
| findModifiedValidators - 10 modified validators | 148.23 ms/op | 130.84 ms/op | 1.13 |
| findModifiedValidators - 1 modified validators | 191.32 ms/op | 156.42 ms/op | 1.22 |
| findModifiedValidators - no difference | 148.19 ms/op | 130.85 ms/op | 1.13 |
| compare ViewDUs | 6.1665 s/op | 5.9606 s/op | 1.03 |
| compare each validator Uint8Array | 1.8199 s/op | 1.9524 s/op | 0.93 |
| compare ViewDU to Uint8Array | 1.1226 s/op | 863.72 ms/op | 1.30 |
| migrate state 1000000 validators, 24 modified, 0 new | 740.08 ms/op | 839.98 ms/op | 0.88 |
| migrate state 1000000 validators, 1700 modified, 1000 new | 1.0868 s/op | 1.0642 s/op | 1.02 |
| migrate state 1000000 validators, 3400 modified, 2000 new | 1.3380 s/op | 1.2209 s/op | 1.10 |
| migrate state 1500000 validators, 24 modified, 0 new | 797.81 ms/op | 921.08 ms/op | 0.87 |
| migrate state 1500000 validators, 1700 modified, 1000 new | 1.0800 s/op | 1.0322 s/op | 1.05 |
| migrate state 1500000 validators, 3400 modified, 2000 new | 1.2837 s/op | 1.2325 s/op | 1.04 |
| RootCache.getBlockRootAtSlot - 250000 vs - 7PWei | 4.4600 ns/op | 5.8200 ns/op | 0.77 |
| state getBlockRootAtSlot - 250000 vs - 7PWei | 587.83 ns/op | 352.35 ns/op | 1.67 |
| naive computeProposerIndex 100000 validators | 56.254 ms/op | 43.275 ms/op | 1.30 |
| computeProposerIndex 100000 validators | 1.5842 ms/op | 1.3235 ms/op | 1.20 |
| naiveGetNextSyncCommitteeIndices 1000 validators | 8.3122 s/op | 6.5120 s/op | 1.28 |
| getNextSyncCommitteeIndices 1000 validators | 114.53 ms/op | 91.352 ms/op | 1.25 |
| naiveGetNextSyncCommitteeIndices 10000 validators | 8.2269 s/op | 6.8792 s/op | 1.20 |
| getNextSyncCommitteeIndices 10000 validators | 116.90 ms/op | 91.111 ms/op | 1.28 |
| naiveGetNextSyncCommitteeIndices 100000 validators | 7.6186 s/op | 6.1532 s/op | 1.24 |
| getNextSyncCommitteeIndices 100000 validators | 115.18 ms/op | 90.574 ms/op | 1.27 |
| naive computeShuffledIndex 100000 validators | 25.908 s/op | 21.429 s/op | 1.21 |
| cached computeShuffledIndex 100000 validators | 574.71 ms/op | 455.85 ms/op | 1.26 |
| naive computeShuffledIndex 2000000 validators | 529.75 s/op | 409.42 s/op | 1.29 |
| cached computeShuffledIndex 2000000 validators | 50.646 s/op | 14.331 s/op | 3.53 |
| computeProposers - vc 250000 | 659.92 us/op | 531.39 us/op | 1.24 |
| computeEpochShuffling - vc 250000 | 43.991 ms/op | 36.751 ms/op | 1.20 |
| getNextSyncCommittee - vc 250000 | 11.043 ms/op | 8.9499 ms/op | 1.23 |
| computeSigningRoot for AttestationData | 22.820 us/op | 16.606 us/op | 1.37 |
| hash AttestationData serialized data then Buffer.toString(base64) | 1.7291 us/op | 1.0721 us/op | 1.61 |
| toHexString serialized data | 1.6552 us/op | 809.63 ns/op | 2.04 |
| Buffer.toString(base64) | 177.04 ns/op | 100.64 ns/op | 1.76 |
| nodejs block root to RootHex using toHex | 158.70 ns/op | 110.59 ns/op | 1.44 |
| nodejs block root to RootHex using toRootHex | 100.79 ns/op | 74.657 ns/op | 1.35 |
| nodejs fromhex(blob) | 128.04 ms/op | 93.255 ms/op | 1.37 |
| nodejs fromHexInto(blob) | 105.07 ms/op | 80.088 ms/op | 1.31 |
| browser block root to RootHex using the deprecated toHexString | 294.14 ns/op | 188.90 ns/op | 1.56 |
| browser block root to RootHex using toHex | 188.76 ns/op | 152.29 ns/op | 1.24 |
| browser block root to RootHex using toRootHex | 172.60 ns/op | 137.36 ns/op | 1.26 |
| browser fromHexInto(blob) | 938.86 us/op | 616.88 us/op | 1.52 |
| browser fromHex(blob) | 878.60 ms/op | 563.11 ms/op | 1.56 |
by benchmarkbot/action
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## unstable #8472 +/- ##
=========================================
Coverage 52.25% 52.26%
=========================================
Files 852 852
Lines 64976 64968 -8
Branches 4768 4769 +1
=========================================
Hits 33954 33954
+ Misses 30953 30945 -8
Partials 69 69 🚀 New features to boost your workflow:
|
**Motivation** - when we remove an eagerly persisted block input, it's very normal that we did not have any columns persisted - but right now it threw this error as shown in #8457 ``` Sep-23 19:16:55.002[chain] �[33mwarn�[39m: Error pruning eagerly imported block inputs, DB may grow in size if this error happens frequently slot=30 - Invalid dataColumnSidecars=0 for custody expected custodyColumnsLen=128 Error: Invalid dataColumnSidecars=0 for custody expected custodyColumnsLen=128 ``` **Description** - do not throw error in this case part of #8457 Co-authored-by: Tuyen Nguyen <twoeths@users.noreply.github.com>
|
🎉 This PR is included in v1.35.0 🎉 |
Motivation
Description
part of #8457