flow-dps icon indicating copy to clipboard operation
flow-dps copied to clipboard

Fix leaf updates and improve performance by 20% by removing use of pools

Open Ullaakut opened this issue 3 years ago • 0 comments

Goal of this PR

This PR improves trie performance and fixes leaf updates which were broken in the previous version. This might have been the cause for the failure to find state commitment matches after indexing the root checkpoint in previous testing.

New benchmark:

BenchmarkTrie_InsertFullTrie
BenchmarkTrie_InsertFullTrie/insert_1024_elements_into_full_trie_(ref)
BenchmarkTrie_InsertFullTrie/insert_1024_elements_into_full_trie_(ref)-8         	     670	   1792013 ns/op
BenchmarkTrie_InsertFullTrie/insert_1024_elements_into_full_trie_(new)
BenchmarkTrie_InsertFullTrie/insert_1024_elements_into_full_trie_(new)-8         	     616	   1912595 ns/op
BenchmarkTrie_InsertFullTrie/insert_2048_elements_into_full_trie_(ref)
BenchmarkTrie_InsertFullTrie/insert_2048_elements_into_full_trie_(ref)-8         	     350	   3375580 ns/op
BenchmarkTrie_InsertFullTrie/insert_2048_elements_into_full_trie_(new)
BenchmarkTrie_InsertFullTrie/insert_2048_elements_into_full_trie_(new)-8         	     366	   3274378 ns/op
BenchmarkTrie_InsertFullTrie/insert_4096_elements_into_full_trie_(ref)
BenchmarkTrie_InsertFullTrie/insert_4096_elements_into_full_trie_(ref)-8         	     181	   6609548 ns/op
BenchmarkTrie_InsertFullTrie/insert_4096_elements_into_full_trie_(new)
BenchmarkTrie_InsertFullTrie/insert_4096_elements_into_full_trie_(new)-8         	     198	   6016952 ns/op
BenchmarkTrie_InsertFullTrie/insert_8192_elements_into_full_trie_(ref)
BenchmarkTrie_InsertFullTrie/insert_8192_elements_into_full_trie_(ref)-8         	      79	  13012390 ns/op
BenchmarkTrie_InsertFullTrie/insert_8192_elements_into_full_trie_(new)
BenchmarkTrie_InsertFullTrie/insert_8192_elements_into_full_trie_(new)-8         	     100	  11256391 ns/op
BenchmarkTrie_InsertFullTrie/insert_16384_elements_into_full_trie_(ref)
BenchmarkTrie_InsertFullTrie/insert_16384_elements_into_full_trie_(ref)-8        	      40	  26154110 ns/op
BenchmarkTrie_InsertFullTrie/insert_16384_elements_into_full_trie_(new)
BenchmarkTrie_InsertFullTrie/insert_16384_elements_into_full_trie_(new)-8        	      57	  21475339 ns/op
BenchmarkTrie_InsertFullTrie/insert_32768_elements_into_full_trie_(ref)
BenchmarkTrie_InsertFullTrie/insert_32768_elements_into_full_trie_(ref)-8        	      20	  52885335 ns/op
BenchmarkTrie_InsertFullTrie/insert_32768_elements_into_full_trie_(new)
BenchmarkTrie_InsertFullTrie/insert_32768_elements_into_full_trie_(new)-8        	      28	  39970121 ns/op

TO DO

  • Find out why insertion of lower amounts of nodes are still slower for us.

Misc

  • [x] PR title will be clear as part of the changelog
  • [x] PR is against the correct branch
  • [x] PR is labelled appropriately

Ullaakut avatar Apr 18 '22 06:04 Ullaakut