mirror of
https://gitlab.com/pulsechaincom/prysm-pulse.git
synced 2024-12-26 05:17:22 +00:00
Increase regen historical state cache size (#5613)
* Increase cache size and garbage collect * Update beacon-chain/db/kv/regen_historical_states.go * Use const
This commit is contained in:
parent
07f6894db1
commit
5fbf38c98f
@ -3,6 +3,7 @@ package kv
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"runtime"
|
||||
|
||||
lru "github.com/hashicorp/golang-lru"
|
||||
"github.com/pkg/errors"
|
||||
@ -18,6 +19,11 @@ import (
|
||||
"go.opencensus.io/trace"
|
||||
)
|
||||
|
||||
// Using max possible size to avoid using DB to save and retrieve pre state (slow)
|
||||
// The size is 80 because block at slot 43772 built on top of block at slot 43693.
|
||||
// That is the worst case.
|
||||
const historicalStatesSize = 80
|
||||
|
||||
func (kv *Store) regenHistoricalStates(ctx context.Context) error {
|
||||
ctx, span := trace.StartSpan(ctx, "db.regenHistoricalStates")
|
||||
defer span.End()
|
||||
@ -56,7 +62,8 @@ func (kv *Store) regenHistoricalStates(ctx context.Context) error {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
cacheState, err := lru.New(int(params.BeaconConfig().SlotsPerEpoch) * 2)
|
||||
|
||||
cacheState, err := lru.New(historicalStatesSize)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
@ -125,6 +132,9 @@ func (kv *Store) regenHistoricalStates(ctx context.Context) error {
|
||||
// Flush the cache, the cached states never be used again.
|
||||
cacheState.Purge()
|
||||
|
||||
// Manually garbage collect as previous cache will never be used again.
|
||||
runtime.GC()
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user