diff --git a/sei-db/common/logger/logger.go b/sei-db/common/logger/logger.go index 0e433a7af8..6908199795 100644 --- a/sei-db/common/logger/logger.go +++ b/sei-db/common/logger/logger.go @@ -1,5 +1,10 @@ package logger +import ( + "fmt" + "strings" +) + // Logger is what any CometBFT library should take. type Logger interface { Debug(msg string, keyvals ...interface{}) @@ -9,8 +14,8 @@ type Logger interface { type nopLogger struct{} -// Interface assertions var _ Logger = (*nopLogger)(nil) +var _ Logger = (*consoleLogger)(nil) // NewNopLogger returns a logger that doesn't do anything. func NewNopLogger() Logger { return &nopLogger{} } @@ -18,3 +23,40 @@ func NewNopLogger() Logger { return &nopLogger{} } func (nopLogger) Info(string, ...interface{}) {} func (nopLogger) Debug(string, ...interface{}) {} func (nopLogger) Error(string, ...interface{}) {} + +type consoleLogger struct{} + +// NewConsoleLogger returns a logger that prints to stdout. +func NewConsoleLogger() Logger { return &consoleLogger{} } + +func (consoleLogger) Debug(msg string, keyvals ...interface{}) { + fmt.Println("[DEBUG]", msg, formatKeyvals(keyvals)) +} + +func (consoleLogger) Info(msg string, keyvals ...interface{}) { + fmt.Println("[INFO]", msg, formatKeyvals(keyvals)) +} + +func (consoleLogger) Error(msg string, keyvals ...interface{}) { + fmt.Println("[ERROR]", msg, formatKeyvals(keyvals)) +} + +func formatKeyvals(keyvals []interface{}) string { + if len(keyvals) == 0 { + return "" + } + var sb strings.Builder + for i := 0; i+1 < len(keyvals); i += 2 { + if sb.Len() > 0 { + sb.WriteByte(' ') + } + fmt.Fprintf(&sb, "%v=%v", keyvals[i], keyvals[i+1]) + } + if len(keyvals)%2 != 0 { + if sb.Len() > 0 { + sb.WriteByte(' ') + } + fmt.Fprintf(&sb, "%v=", keyvals[len(keyvals)-1]) + } + return sb.String() +} diff --git a/sei-db/state_db/bench/cryptosim/cryptosim_config.go b/sei-db/state_db/bench/cryptosim/cryptosim_config.go index a33e5a42ff..0f7579bb5a 100644 --- a/sei-db/state_db/bench/cryptosim/cryptosim_config.go +++ b/sei-db/state_db/bench/cryptosim/cryptosim_config.go @@ -155,7 +155,7 @@ func DefaultCryptoSimConfig() *CryptoSimConfig { Erc20StorageSlotSize: 32, Erc20InteractionsPerAccount: 10, TransactionsPerBlock: 1024, - BlocksPerCommit: 32, + BlocksPerCommit: 1, Seed: 1337, CannedRandomSize: 1024 * 1024 * 1024, // 1GB Backend: wrappers.FlatKV, diff --git a/sei-db/state_db/bench/wrappers/db_implementations.go b/sei-db/state_db/bench/wrappers/db_implementations.go index 9e120cf5ec..a827918382 100644 --- a/sei-db/state_db/bench/wrappers/db_implementations.go +++ b/sei-db/state_db/bench/wrappers/db_implementations.go @@ -31,9 +31,10 @@ const ( func newMemIAVLCommitStore(dbDir string) (DBWrapper, error) { cfg := memiavl.DefaultConfig() cfg.AsyncCommitBuffer = 10 - cfg.SnapshotInterval = 100 + cfg.SnapshotInterval = 1000 + cfg.SnapshotMinTimeInterval = 60 fmt.Printf("Opening memIAVL from directory %s\n", dbDir) - cs := memiavl.NewCommitStore(dbDir, logger.NewNopLogger(), cfg) + cs := memiavl.NewCommitStore(dbDir, logger.NewConsoleLogger(), cfg) cs.Initialize([]string{EVMStoreName}) _, err := cs.LoadVersion(0, false) if err != nil { @@ -49,7 +50,7 @@ func newFlatKVCommitStore(ctx context.Context, dbDir string) (DBWrapper, error) cfg := flatkv.DefaultConfig() cfg.Fsync = false fmt.Printf("Opening flatKV from directory %s\n", dbDir) - cs := flatkv.NewCommitStore(ctx, dbDir, logger.NewNopLogger(), cfg) + cs := flatkv.NewCommitStore(ctx, dbDir, logger.NewConsoleLogger(), cfg) _, err := cs.LoadVersion(0) if err != nil { if closeErr := cs.Close(); closeErr != nil { @@ -66,7 +67,7 @@ func newCompositeCommitStore(ctx context.Context, dbDir string, writeMode config cfg.MemIAVLConfig.AsyncCommitBuffer = 10 cfg.MemIAVLConfig.SnapshotInterval = 100 - cs := composite.NewCompositeCommitStore(ctx, dbDir, logger.NewNopLogger(), cfg) + cs := composite.NewCompositeCommitStore(ctx, dbDir, logger.NewConsoleLogger(), cfg) cs.Initialize([]string{EVMStoreName}) loaded, err := cs.LoadVersion(0, false) @@ -88,7 +89,7 @@ func openSSComposite(dir string) (*ssComposite.CompositeStateStore, error) { cfg.AsyncWriteBuffer = 0 cfg.WriteMode = config.DualWrite cfg.ReadMode = config.EVMFirstRead - return ssComposite.NewCompositeStateStore(cfg, dir, logger.NewNopLogger()) + return ssComposite.NewCompositeStateStore(cfg, dir, logger.NewConsoleLogger()) } func newSSCompositeStateStore(dbDir string) (DBWrapper, error) {