You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Some node operators, especially exchanges and chain explorers, heavily rely on execution traces. Ideally said operators would call StateCompute once, but this isn't always the case.
Specifically, we should introduce a simple ARC cache here. It can be small (16-32), but any amount of caching here will likely improve performance. Ideally we'd have a per-tipset lock to avoid duplicating work, but that can be done in a followup if it ends up being expensive.
The text was updated successfully, but these errors were encountered:
This PR adds a small cache to calls to ExecutionTrace which helps
improve performance for node operators like exchanges and block
explorers.
If items is in cache calls to this function will be 2-3x faster.
Fixes: #10504
maciejwitowski
changed the title
Cache execution traces
Cache execution traces (State Compute Cache)
Mar 22, 2023
This PR adds a small cache to calls to ExecutionTrace which helps
improve performance for node operators like exchanges and block
explorers.
If items is in cache calls to this function will be 2-3x faster.
Fixes: #10504
Some node operators, especially exchanges and chain explorers, heavily rely on execution traces. Ideally said operators would call
StateCompute
once, but this isn't always the case.We can optimize this by caching the result of:
lotus/chain/stmgr/execute.go
Lines 130 to 137 in 97a3b6e
Specifically, we should introduce a simple ARC cache here. It can be small (16-32), but any amount of caching here will likely improve performance. Ideally we'd have a per-tipset lock to avoid duplicating work, but that can be done in a followup if it ends up being expensive.
The text was updated successfully, but these errors were encountered: