optakt / flow-dps

Flow Data Provisioning Service
Apache License 2.0
29 stars 13 forks source link

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

Open Ullaakut opened 2 years ago

Ullaakut commented 2 years ago

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

Misc