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: archive state without using batchDelete #5607

Merged
merged 2 commits into from
Jun 8, 2023

Conversation

twoeths
Copy link
Contributor

@twoeths twoeths commented Jun 4, 2023

Motivation

  • batchDelete() causes rss memory spike while most of the time we delete only 1 state
527859:Jun-03 15:36:48.355[chain]         verbose: Archived state completed finalizedEpoch=180463, minEpoch=179200, storedStateSlots=5734400,5767424,5773760, statesSlotsToDelete=5773760
647957:Jun-03 19:08:09.414[chain]         verbose: Archived state completed finalizedEpoch=180496, minEpoch=179200, storedStateSlots=5734400,5767424,5774816, statesSlotsToDelete=5774816

Description

  • Fallback to regular operation (delete/add/put/remove) if 1 item
  • Specifically for archiveState, it'll delete 1 or more than 1 state for the 1st time, and it'll delete exactly 1 state from the 2nd time
21619763:Jun-08 03:15:38.904[chain]         verbose: Archived state completed finalizedEpoch=206691, minEpoch=204800, storedStateSlots=6553600,6587104,6612448,6613056, statesSlotsToDelete=6612448,6613056 ===> this will call batchDelete, only happen at the 1st time
43719043:Jun-08 06:46:50.966[chain]         verbose: Archived state completed finalizedEpoch=206724, minEpoch=204800, storedStateSlots=6553600,6587104,6614112, statesSlotsToDelete=6614112 ===> this will call delete instead of batchDelete

part of #5591

TODOs

  • Monitor this branch for 12h

@github-actions
Copy link
Contributor

github-actions bot commented Jun 4, 2023

Performance Report

✔️ no performance regression detected

Full benchmark results
Benchmark suite Current: f5b8fc7 Previous: 8cd7bd2 Ratio
getPubkeys - index2pubkey - req 1000 vs - 250000 vc 577.19 us/op 644.25 us/op 0.90
getPubkeys - validatorsArr - req 1000 vs - 250000 vc 56.203 us/op 56.751 us/op 0.99
BLS verify - blst-native 1.2517 ms/op 1.3069 ms/op 0.96
BLS verifyMultipleSignatures 3 - blst-native 2.5650 ms/op 2.6491 ms/op 0.97
BLS verifyMultipleSignatures 8 - blst-native 5.4790 ms/op 5.6152 ms/op 0.98
BLS verifyMultipleSignatures 32 - blst-native 19.706 ms/op 21.078 ms/op 0.93
BLS aggregatePubkeys 32 - blst-native 26.339 us/op 28.129 us/op 0.94
BLS aggregatePubkeys 128 - blst-native 102.87 us/op 108.36 us/op 0.95
getAttestationsForBlock 61.876 ms/op 59.214 ms/op 1.04
isKnown best case - 1 super set check 268.00 ns/op 265.00 ns/op 1.01
isKnown normal case - 2 super set checks 265.00 ns/op 262.00 ns/op 1.01
isKnown worse case - 16 super set checks 264.00 ns/op 258.00 ns/op 1.02
CheckpointStateCache - add get delete 5.6040 us/op 5.2410 us/op 1.07
validate gossip signedAggregateAndProof - struct 2.8128 ms/op 2.8652 ms/op 0.98
validate gossip attestation - struct 1.3533 ms/op 1.3757 ms/op 0.98
pickEth1Vote - no votes 1.3656 ms/op 1.3506 ms/op 1.01
pickEth1Vote - max votes 13.868 ms/op 10.005 ms/op 1.39
pickEth1Vote - Eth1Data hashTreeRoot value x2048 10.178 ms/op 9.4051 ms/op 1.08
pickEth1Vote - Eth1Data hashTreeRoot tree x2048 16.664 ms/op 15.455 ms/op 1.08
pickEth1Vote - Eth1Data fastSerialize value x2048 792.17 us/op 703.00 us/op 1.13
pickEth1Vote - Eth1Data fastSerialize tree x2048 9.0780 ms/op 7.5751 ms/op 1.20
bytes32 toHexString 540.00 ns/op 566.00 ns/op 0.95
bytes32 Buffer.toString(hex) 389.00 ns/op 419.00 ns/op 0.93
bytes32 Buffer.toString(hex) from Uint8Array 661.00 ns/op 625.00 ns/op 1.06
bytes32 Buffer.toString(hex) + 0x 435.00 ns/op 417.00 ns/op 1.04
Object access 1 prop 0.18100 ns/op 0.18600 ns/op 0.97
Map access 1 prop 0.17300 ns/op 0.16700 ns/op 1.04
Object get x1000 7.0220 ns/op 7.0430 ns/op 1.00
Map get x1000 0.66900 ns/op 0.67700 ns/op 0.99
Object set x1000 69.513 ns/op 61.201 ns/op 1.14
Map set x1000 50.357 ns/op 46.577 ns/op 1.08
Return object 10000 times 0.24820 ns/op 0.24670 ns/op 1.01
Throw Error 10000 times 4.3418 us/op 4.4260 us/op 0.98
fastMsgIdFn sha256 / 200 bytes 3.5100 us/op 3.6100 us/op 0.97
fastMsgIdFn h32 xxhash / 200 bytes 319.00 ns/op 299.00 ns/op 1.07
fastMsgIdFn h64 xxhash / 200 bytes 503.00 ns/op 416.00 ns/op 1.21
fastMsgIdFn sha256 / 1000 bytes 12.282 us/op 12.130 us/op 1.01
fastMsgIdFn h32 xxhash / 1000 bytes 461.00 ns/op 441.00 ns/op 1.05
fastMsgIdFn h64 xxhash / 1000 bytes 576.00 ns/op 491.00 ns/op 1.17
fastMsgIdFn sha256 / 10000 bytes 106.85 us/op 107.49 us/op 0.99
fastMsgIdFn h32 xxhash / 10000 bytes 2.0380 us/op 1.9710 us/op 1.03
fastMsgIdFn h64 xxhash / 10000 bytes 1.5050 us/op 1.4300 us/op 1.05
enrSubnets - fastDeserialize 64 bits 1.5780 us/op 1.4080 us/op 1.12
enrSubnets - ssz BitVector 64 bits 572.00 ns/op 657.00 ns/op 0.87
enrSubnets - fastDeserialize 4 bits 203.00 ns/op 198.00 ns/op 1.03
enrSubnets - ssz BitVector 4 bits 604.00 ns/op 634.00 ns/op 0.95
prioritizePeers score -10:0 att 32-0.1 sync 2-0 119.52 us/op 111.27 us/op 1.07
prioritizePeers score 0:0 att 32-0.25 sync 2-0.25 148.44 us/op 151.01 us/op 0.98
prioritizePeers score 0:0 att 32-0.5 sync 2-0.5 198.56 us/op 203.37 us/op 0.98
prioritizePeers score 0:0 att 64-0.75 sync 4-0.75 364.59 us/op 419.12 us/op 0.87
prioritizePeers score 0:0 att 64-1 sync 4-1 430.40 us/op 491.80 us/op 0.88
array of 16000 items push then shift 1.7145 us/op 1.8356 us/op 0.93
LinkedList of 16000 items push then shift 9.3040 ns/op 9.9290 ns/op 0.94
array of 16000 items push then pop 119.86 ns/op 116.64 ns/op 1.03
LinkedList of 16000 items push then pop 9.0200 ns/op 9.1800 ns/op 0.98
array of 24000 items push then shift 2.4136 us/op 2.4900 us/op 0.97
LinkedList of 24000 items push then shift 9.0970 ns/op 9.4540 ns/op 0.96
array of 24000 items push then pop 91.940 ns/op 86.923 ns/op 1.06
LinkedList of 24000 items push then pop 9.2190 ns/op 9.0940 ns/op 1.01
intersect bitArray bitLen 8 13.642 ns/op 14.116 ns/op 0.97
intersect array and set length 8 93.553 ns/op 94.966 ns/op 0.99
intersect bitArray bitLen 128 45.016 ns/op 46.914 ns/op 0.96
intersect array and set length 128 1.1779 us/op 1.2961 us/op 0.91
Buffer.concat 32 items 3.0380 us/op 3.1980 us/op 0.95
Uint8Array.set 32 items 2.5860 us/op 2.3460 us/op 1.10
transfer serialized Status (84 B) 2.1580 us/op 2.1030 us/op 1.03
copy serialized Status (84 B) 1.7750 us/op 1.7700 us/op 1.00
transfer serialized SignedVoluntaryExit (112 B) 2.2830 us/op 2.1960 us/op 1.04
copy serialized SignedVoluntaryExit (112 B) 1.9690 us/op 1.8710 us/op 1.05
transfer serialized ProposerSlashing (416 B) 2.6400 us/op 2.4490 us/op 1.08
copy serialized ProposerSlashing (416 B) 3.2510 us/op 2.3360 us/op 1.39
transfer serialized Attestation (485 B) 2.5550 us/op 3.2710 us/op 0.78
copy serialized Attestation (485 B) 2.7520 us/op 3.4300 us/op 0.80
transfer serialized AttesterSlashing (33232 B) 2.9060 us/op 3.4810 us/op 0.83
copy serialized AttesterSlashing (33232 B) 6.2230 us/op 7.7130 us/op 0.81
transfer serialized Small SignedBeaconBlock (128000 B) 2.9460 us/op 3.6510 us/op 0.81
copy serialized Small SignedBeaconBlock (128000 B) 15.045 us/op 16.917 us/op 0.89
transfer serialized Avg SignedBeaconBlock (200000 B) 3.3150 us/op 3.8080 us/op 0.87
copy serialized Avg SignedBeaconBlock (200000 B) 21.408 us/op 28.193 us/op 0.76
transfer serialized BlobsSidecar (524380 B) 3.2220 us/op 4.6650 us/op 0.69
copy serialized BlobsSidecar (524380 B) 180.63 us/op 180.57 us/op 1.00
transfer serialized Big SignedBeaconBlock (1000000 B) 3.4430 us/op 4.5270 us/op 0.76
copy serialized Big SignedBeaconBlock (1000000 B) 251.27 us/op 293.47 us/op 0.86
pass gossip attestations to forkchoice per slot 2.6960 ms/op 2.9091 ms/op 0.93
forkChoice updateHead vc 100000 bc 64 eq 0 2.1814 ms/op 2.3921 ms/op 0.91
forkChoice updateHead vc 600000 bc 64 eq 0 15.303 ms/op 15.365 ms/op 1.00
forkChoice updateHead vc 1000000 bc 64 eq 0 19.195 ms/op 21.255 ms/op 0.90
forkChoice updateHead vc 600000 bc 320 eq 0 17.032 ms/op 16.950 ms/op 1.00
forkChoice updateHead vc 600000 bc 1200 eq 0 89.737 ms/op 86.492 ms/op 1.04
forkChoice updateHead vc 600000 bc 64 eq 1000 23.840 ms/op 22.101 ms/op 1.08
forkChoice updateHead vc 600000 bc 64 eq 10000 25.846 ms/op 25.902 ms/op 1.00
forkChoice updateHead vc 600000 bc 64 eq 300000 34.634 ms/op 33.588 ms/op 1.03
computeDeltas 3.1382 ms/op 3.6844 ms/op 0.85
computeProposerBoostScoreFromBalances 1.7877 ms/op 2.0319 ms/op 0.88
altair processAttestation - 250000 vs - 7PWei normalcase 2.3174 ms/op 3.9698 ms/op 0.58
altair processAttestation - 250000 vs - 7PWei worstcase 3.3427 ms/op 6.0506 ms/op 0.55
altair processAttestation - setStatus - 1/6 committees join 142.48 us/op 175.84 us/op 0.81
altair processAttestation - setStatus - 1/3 committees join 279.13 us/op 358.13 us/op 0.78
altair processAttestation - setStatus - 1/2 committees join 375.57 us/op 498.93 us/op 0.75
altair processAttestation - setStatus - 2/3 committees join 469.02 us/op 671.45 us/op 0.70
altair processAttestation - setStatus - 4/5 committees join 662.15 us/op 1.0259 ms/op 0.65
altair processAttestation - setStatus - 100% committees join 767.07 us/op 954.50 us/op 0.80
altair processBlock - 250000 vs - 7PWei normalcase 18.139 ms/op 22.935 ms/op 0.79
altair processBlock - 250000 vs - 7PWei normalcase hashState 26.560 ms/op 32.902 ms/op 0.81
altair processBlock - 250000 vs - 7PWei worstcase 48.305 ms/op 60.730 ms/op 0.80
altair processBlock - 250000 vs - 7PWei worstcase hashState 70.892 ms/op 92.233 ms/op 0.77
phase0 processBlock - 250000 vs - 7PWei normalcase 1.9852 ms/op 2.8715 ms/op 0.69
phase0 processBlock - 250000 vs - 7PWei worstcase 28.113 ms/op 39.665 ms/op 0.71
altair processEth1Data - 250000 vs - 7PWei normalcase 484.50 us/op 936.73 us/op 0.52
getExpectedWithdrawals 250000 eb:1,eth1:1,we:0,wn:0,smpl:15 6.8360 us/op 19.314 us/op 0.35
getExpectedWithdrawals 250000 eb:0.95,eth1:0.1,we:0.05,wn:0,smpl:219 20.586 us/op 40.138 us/op 0.51
getExpectedWithdrawals 250000 eb:0.95,eth1:0.3,we:0.05,wn:0,smpl:42 9.0020 us/op 15.604 us/op 0.58
getExpectedWithdrawals 250000 eb:0.95,eth1:0.7,we:0.05,wn:0,smpl:18 6.8030 us/op 7.8770 us/op 0.86
getExpectedWithdrawals 250000 eb:0.1,eth1:0.1,we:0,wn:0,smpl:1020 79.066 us/op 95.086 us/op 0.83
getExpectedWithdrawals 250000 eb:0.03,eth1:0.03,we:0,wn:0,smpl:11777 630.54 us/op 1.0161 ms/op 0.62
getExpectedWithdrawals 250000 eb:0.01,eth1:0.01,we:0,wn:0,smpl:16384 899.18 us/op 1.6515 ms/op 0.54
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,smpl:16384 864.66 us/op 1.0128 ms/op 0.85
getExpectedWithdrawals 250000 eb:0,eth1:0,we:0,wn:0,nocache,smpl:16384 2.3265 ms/op 4.2230 ms/op 0.55
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,smpl:16384 1.5103 ms/op 1.9616 ms/op 0.77
getExpectedWithdrawals 250000 eb:0,eth1:1,we:0,wn:0,nocache,smpl:16384 3.8476 ms/op 6.9463 ms/op 0.55
Tree 40 250000 create 317.90 ms/op 619.07 ms/op 0.51
Tree 40 250000 get(125000) 185.50 ns/op 228.11 ns/op 0.81
Tree 40 250000 set(125000) 837.04 ns/op 1.9540 us/op 0.43
Tree 40 250000 toArray() 16.724 ms/op 27.646 ms/op 0.60
Tree 40 250000 iterate all - toArray() + loop 16.907 ms/op 28.171 ms/op 0.60
Tree 40 250000 iterate all - get(i) 67.120 ms/op 91.868 ms/op 0.73
MutableVector 250000 create 10.413 ms/op 17.490 ms/op 0.60
MutableVector 250000 get(125000) 6.2400 ns/op 7.8320 ns/op 0.80
MutableVector 250000 set(125000) 239.31 ns/op 431.96 ns/op 0.55
MutableVector 250000 toArray() 2.6964 ms/op 4.4370 ms/op 0.61
MutableVector 250000 iterate all - toArray() + loop 2.6962 ms/op 4.5969 ms/op 0.59
MutableVector 250000 iterate all - get(i) 1.4915 ms/op 1.7890 ms/op 0.83
Array 250000 create 2.5219 ms/op 4.1885 ms/op 0.60
Array 250000 clone - spread 1.0689 ms/op 1.5167 ms/op 0.70
Array 250000 get(125000) 0.54900 ns/op 1.2650 ns/op 0.43
Array 250000 set(125000) 0.60800 ns/op 1.2620 ns/op 0.48
Array 250000 iterate all - loop 87.068 us/op 134.24 us/op 0.65
effectiveBalanceIncrements clone Uint8Array 300000 27.740 us/op 58.659 us/op 0.47
effectiveBalanceIncrements clone MutableVector 300000 340.00 ns/op 435.00 ns/op 0.78
effectiveBalanceIncrements rw all Uint8Array 300000 168.92 us/op 200.08 us/op 0.84
effectiveBalanceIncrements rw all MutableVector 300000 80.885 ms/op 140.34 ms/op 0.58
phase0 afterProcessEpoch - 250000 vs - 7PWei 114.93 ms/op 135.28 ms/op 0.85
phase0 beforeProcessEpoch - 250000 vs - 7PWei 41.336 ms/op 52.355 ms/op 0.79
altair processEpoch - mainnet_e81889 321.92 ms/op 376.80 ms/op 0.85
mainnet_e81889 - altair beforeProcessEpoch 64.466 ms/op 72.539 ms/op 0.89
mainnet_e81889 - altair processJustificationAndFinalization 16.588 us/op 19.786 us/op 0.84
mainnet_e81889 - altair processInactivityUpdates 5.3698 ms/op 6.5002 ms/op 0.83
mainnet_e81889 - altair processRewardsAndPenalties 66.999 ms/op 73.216 ms/op 0.92
mainnet_e81889 - altair processRegistryUpdates 2.5010 us/op 3.8150 us/op 0.66
mainnet_e81889 - altair processSlashings 592.00 ns/op 600.00 ns/op 0.99
mainnet_e81889 - altair processEth1DataReset 500.00 ns/op 592.00 ns/op 0.84
mainnet_e81889 - altair processEffectiveBalanceUpdates 1.2478 ms/op 1.2762 ms/op 0.98
mainnet_e81889 - altair processSlashingsReset 4.1020 us/op 4.8870 us/op 0.84
mainnet_e81889 - altair processRandaoMixesReset 6.8030 us/op 4.7490 us/op 1.43
mainnet_e81889 - altair processHistoricalRootsUpdate 882.00 ns/op 904.00 ns/op 0.98
mainnet_e81889 - altair processParticipationFlagUpdates 3.4480 us/op 2.5880 us/op 1.33
mainnet_e81889 - altair processSyncCommitteeUpdates 460.00 ns/op 800.00 ns/op 0.57
mainnet_e81889 - altair afterProcessEpoch 127.37 ms/op 132.23 ms/op 0.96
phase0 processEpoch - mainnet_e58758 362.22 ms/op 352.40 ms/op 1.03
mainnet_e58758 - phase0 beforeProcessEpoch 134.49 ms/op 118.24 ms/op 1.14
mainnet_e58758 - phase0 processJustificationAndFinalization 17.274 us/op 18.823 us/op 0.92
mainnet_e58758 - phase0 processRewardsAndPenalties 62.139 ms/op 52.739 ms/op 1.18
mainnet_e58758 - phase0 processRegistryUpdates 7.5180 us/op 10.712 us/op 0.70
mainnet_e58758 - phase0 processSlashings 496.00 ns/op 535.00 ns/op 0.93
mainnet_e58758 - phase0 processEth1DataReset 485.00 ns/op 499.00 ns/op 0.97
mainnet_e58758 - phase0 processEffectiveBalanceUpdates 949.83 us/op 1.0572 ms/op 0.90
mainnet_e58758 - phase0 processSlashingsReset 4.6420 us/op 3.5620 us/op 1.30
mainnet_e58758 - phase0 processRandaoMixesReset 5.0100 us/op 5.0310 us/op 1.00
mainnet_e58758 - phase0 processHistoricalRootsUpdate 812.00 ns/op 1.1830 us/op 0.69
mainnet_e58758 - phase0 processParticipationRecordUpdates 3.8580 us/op 6.2500 us/op 0.62
mainnet_e58758 - phase0 afterProcessEpoch 93.794 ms/op 106.95 ms/op 0.88
phase0 processEffectiveBalanceUpdates - 250000 normalcase 1.1808 ms/op 1.3481 ms/op 0.88
phase0 processEffectiveBalanceUpdates - 250000 worstcase 0.5 1.5319 ms/op 1.9510 ms/op 0.79
altair processInactivityUpdates - 250000 normalcase 19.843 ms/op 29.245 ms/op 0.68
altair processInactivityUpdates - 250000 worstcase 25.271 ms/op 29.329 ms/op 0.86
phase0 processRegistryUpdates - 250000 normalcase 7.4020 us/op 8.7280 us/op 0.85
phase0 processRegistryUpdates - 250000 badcase_full_deposits 265.89 us/op 274.71 us/op 0.97
phase0 processRegistryUpdates - 250000 worstcase 0.5 123.95 ms/op 214.14 ms/op 0.58
altair processRewardsAndPenalties - 250000 normalcase 69.679 ms/op 110.96 ms/op 0.63
altair processRewardsAndPenalties - 250000 worstcase 70.965 ms/op 115.52 ms/op 0.61
phase0 getAttestationDeltas - 250000 normalcase 7.3672 ms/op 14.163 ms/op 0.52
phase0 getAttestationDeltas - 250000 worstcase 6.6212 ms/op 14.626 ms/op 0.45
phase0 processSlashings - 250000 worstcase 3.6960 ms/op 7.7217 ms/op 0.48
altair processSyncCommitteeUpdates - 250000 177.48 ms/op 277.96 ms/op 0.64
BeaconState.hashTreeRoot - No change 347.00 ns/op 428.00 ns/op 0.81
BeaconState.hashTreeRoot - 1 full validator 57.772 us/op 57.458 us/op 1.01
BeaconState.hashTreeRoot - 32 full validator 530.23 us/op 629.22 us/op 0.84
BeaconState.hashTreeRoot - 512 full validator 6.0097 ms/op 5.8717 ms/op 1.02
BeaconState.hashTreeRoot - 1 validator.effectiveBalance 63.532 us/op 69.367 us/op 0.92
BeaconState.hashTreeRoot - 32 validator.effectiveBalance 927.54 us/op 1.0299 ms/op 0.90
BeaconState.hashTreeRoot - 512 validator.effectiveBalance 11.440 ms/op 12.981 ms/op 0.88
BeaconState.hashTreeRoot - 1 balances 51.064 us/op 53.151 us/op 0.96
BeaconState.hashTreeRoot - 32 balances 477.83 us/op 520.17 us/op 0.92
BeaconState.hashTreeRoot - 512 balances 4.4634 ms/op 5.7600 ms/op 0.77
BeaconState.hashTreeRoot - 250000 balances 78.436 ms/op 84.182 ms/op 0.93
aggregationBits - 2048 els - zipIndexesInBitList 17.117 us/op 18.301 us/op 0.94
regular array get 100000 times 44.953 us/op 46.177 us/op 0.97
wrappedArray get 100000 times 43.316 us/op 35.574 us/op 1.22
arrayWithProxy get 100000 times 16.235 ms/op 18.178 ms/op 0.89
ssz.Root.equals 549.00 ns/op 682.00 ns/op 0.80
byteArrayEquals 554.00 ns/op 639.00 ns/op 0.87
shuffle list - 16384 els 6.9931 ms/op 9.2437 ms/op 0.76
shuffle list - 250000 els 103.91 ms/op 136.72 ms/op 0.76
processSlot - 1 slots 8.9260 us/op 14.795 us/op 0.60
processSlot - 32 slots 1.4506 ms/op 2.1159 ms/op 0.69
getEffectiveBalanceIncrementsZeroInactive - 250000 vs - 7PWei 37.273 ms/op 47.592 ms/op 0.78
getCommitteeAssignments - req 1 vs - 250000 vc 3.1963 ms/op 3.7811 ms/op 0.85
getCommitteeAssignments - req 100 vs - 250000 vc 4.3998 ms/op 5.2540 ms/op 0.84
getCommitteeAssignments - req 1000 vs - 250000 vc 4.7448 ms/op 6.0226 ms/op 0.79
RootCache.getBlockRootAtSlot - 250000 vs - 7PWei 5.6400 ns/op 6.5000 ns/op 0.87
state getBlockRootAtSlot - 250000 vs - 7PWei 776.40 ns/op 1.2094 us/op 0.64
computeProposers - vc 250000 12.071 ms/op 14.751 ms/op 0.82
computeEpochShuffling - vc 250000 130.24 ms/op 148.42 ms/op 0.88
getNextSyncCommittee - vc 250000 193.68 ms/op 256.38 ms/op 0.76
computeSigningRoot for AttestationData 14.877 us/op 19.620 us/op 0.76
hash AttestationData serialized data then Buffer.toString(base64) 2.6484 us/op 3.3184 us/op 0.80
toHexString serialized data 1.6047 us/op 1.9057 us/op 0.84
Buffer.toString(base64) 398.55 ns/op 473.02 ns/op 0.84

by benchmarkbot/action

@twoeths
Copy link
Contributor Author

twoeths commented Jun 8, 2023

this does not completely resolve #5591, however it helps prevent it a lot of time since we rarely call batchDelete. I deployed and monitored this branch in 13h

  • still see memory spike on the test mainnet node, however that's the only time I see it. The debug shows it deleted 2 states which call batchDelete()
Screenshot 2023-06-08 at 20 02 00
  • for other nodes in same group, it's all good
Screenshot 2023-06-08 at 20 02 38

@twoeths twoeths marked this pull request as ready for review June 8, 2023 13:05
@twoeths twoeths requested a review from a team as a code owner June 8, 2023 13:05
@twoeths twoeths merged commit 082d8c9 into unstable Jun 8, 2023
12 checks passed
@twoeths twoeths deleted the tuyen/archive_state_no_batch_delete branch June 8, 2023 13:05
@wemeetagain
Copy link
Member

🎉 This PR is included in v1.9.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.

None yet

3 participants