From 5885fb5f8f4984a61201938385ae13b4adaf7d77 Mon Sep 17 00:00:00 2001 From: yzang2019 Date: Mon, 12 Aug 2024 11:50:30 -0700 Subject: [PATCH] Fix changelog path for receiptdb --- ss/pebbledb/db.go | 6 +++++- ss/rocksdb/db.go | 3 +++ ss/rocksdb_init.go | 4 ++-- ss/sqlite/db.go | 4 ++++ ss/sqlite_init.go | 4 ++-- ss/store.go | 4 ++++ 6 files changed, 20 insertions(+), 5 deletions(-) diff --git a/ss/pebbledb/db.go b/ss/pebbledb/db.go index 6f6ffe0..092f7b0 100644 --- a/ss/pebbledb/db.go +++ b/ss/pebbledb/db.go @@ -117,13 +117,17 @@ func New(dataDir string, config config.StateStoreConfig) (*Database, error) { pendingChanges: make(chan VersionedChangesets, config.AsyncWriteBuffer), } if config.DedicatedChangelog { + keepRecent := config.KeepRecent + if config.KeepRecent <= 0 { + keepRecent = 100000 + } streamHandler, _ := changelog.NewStream( logger.NewNopLogger(), utils.GetChangelogPath(dataDir), changelog.Config{ DisableFsync: true, ZeroCopy: true, - KeepRecent: uint64(config.KeepRecent), + KeepRecent: uint64(keepRecent), PruneInterval: 300 * time.Second, }, ) diff --git a/ss/rocksdb/db.go b/ss/rocksdb/db.go index e1875af..e810abd 100644 --- a/ss/rocksdb/db.go +++ b/ss/rocksdb/db.go @@ -374,3 +374,6 @@ func cloneAppend(bz []byte, tail []byte) (res []byte) { copy(res[len(bz):], tail) return } +func (db *Database) RawImport(ch <-chan types.RawSnapshotNode) error { + panic("implement me") +} diff --git a/ss/rocksdb_init.go b/ss/rocksdb_init.go index b11f6f8..43361d4 100644 --- a/ss/rocksdb_init.go +++ b/ss/rocksdb_init.go @@ -12,11 +12,11 @@ import ( func init() { initializer := func(dir string, configs config.StateStoreConfig) (types.StateStore, error) { - dbHome := dir + dbHome := utils.GetStateStorePath(dir, configs.Backend) if configs.DBDirectory != "" { dbHome = configs.DBDirectory } - return rocksdb.New(utils.GetStateStorePath(dbHome, configs.Backend), configs) + return rocksdb.New(dbHome, configs) } RegisterBackend(RocksDBBackend, initializer) } diff --git a/ss/sqlite/db.go b/ss/sqlite/db.go index f2b602c..9e51b85 100644 --- a/ss/sqlite/db.go +++ b/ss/sqlite/db.go @@ -334,3 +334,7 @@ func execPragmas(db *sql.DB, pragmas []string) error { } return nil } + +func (db *Database) RawImport(ch <-chan types.RawSnapshotNode) error { + panic("implement me") +} diff --git a/ss/sqlite_init.go b/ss/sqlite_init.go index 7b24eba..2e06a7c 100644 --- a/ss/sqlite_init.go +++ b/ss/sqlite_init.go @@ -12,11 +12,11 @@ import ( func init() { initializer := func(dir string, configs config.StateStoreConfig) (types.StateStore, error) { - dbHome := dir + dbHome := utils.GetStateStorePath(dir, configs.Backend) if configs.DBDirectory != "" { dbHome = configs.DBDirectory } - return sqlite.New(utils.GetStateStorePath(dbHome, configs.Backend), configs) + return sqlite.New(dbHome, configs) } RegisterBackend(SQLiteBackend, initializer) } diff --git a/ss/store.go b/ss/store.go index 671e428..a472c86 100644 --- a/ss/store.go +++ b/ss/store.go @@ -47,6 +47,9 @@ func NewStateStore(logger logger.Logger, homeDir string, ssConfig config.StateSt // Handle auto recovery for DB running with async mode if ssConfig.DedicatedChangelog { changelogPath := utils.GetChangelogPath(utils.GetStateStorePath(homeDir, ssConfig.Backend)) + if ssConfig.DBDirectory != "" { + changelogPath = utils.GetChangelogPath(ssConfig.DBDirectory) + } err := RecoverStateStore(logger, changelogPath, stateStore) if err != nil { return nil, err @@ -61,6 +64,7 @@ func NewStateStore(logger logger.Logger, homeDir string, ssConfig config.StateSt // RecoverStateStore will be called during initialization to recover the state from rlog func RecoverStateStore(logger logger.Logger, changelogPath string, stateStore types.StateStore) error { ssLatestVersion, err := stateStore.GetLatestVersion() + logger.Info(fmt.Sprintf("Recovering from changelog %s at latest SS version %d", changelogPath, ssLatestVersion)) if err != nil { return err }