forked from cerc-io/plugeth
trie/triedb/pathdb: make shutdown journal log friendlier (#27905)
This commit is contained in:
parent
80b76a9527
commit
0ce331f56a
@ -21,6 +21,7 @@ import (
|
|||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
|
"time"
|
||||||
|
|
||||||
"github.com/ethereum/go-ethereum/common"
|
"github.com/ethereum/go-ethereum/common"
|
||||||
"github.com/ethereum/go-ethereum/core/rawdb"
|
"github.com/ethereum/go-ethereum/core/rawdb"
|
||||||
@ -341,6 +342,14 @@ func (db *Database) Journal(root common.Hash) error {
|
|||||||
if l == nil {
|
if l == nil {
|
||||||
return fmt.Errorf("triedb layer [%#x] missing", root)
|
return fmt.Errorf("triedb layer [%#x] missing", root)
|
||||||
}
|
}
|
||||||
|
disk := db.tree.bottom()
|
||||||
|
if l, ok := l.(*diffLayer); ok {
|
||||||
|
log.Info("Persisting dirty state to disk", "head", l.block, "root", root, "layers", l.id-disk.id+disk.buffer.layers)
|
||||||
|
} else { // disk layer only on noop runs (likely) or deep reorgs (unlikely)
|
||||||
|
log.Info("Persisting dirty state to disk", "root", root, "layers", disk.buffer.layers)
|
||||||
|
}
|
||||||
|
start := time.Now()
|
||||||
|
|
||||||
// Run the journaling
|
// Run the journaling
|
||||||
db.lock.Lock()
|
db.lock.Lock()
|
||||||
defer db.lock.Unlock()
|
defer db.lock.Unlock()
|
||||||
@ -373,6 +382,6 @@ func (db *Database) Journal(root common.Hash) error {
|
|||||||
|
|
||||||
// Set the db in read only mode to reject all following mutations
|
// Set the db in read only mode to reject all following mutations
|
||||||
db.readOnly = true
|
db.readOnly = true
|
||||||
log.Info("Stored journal in triedb", "disk", diskroot, "size", common.StorageSize(journal.Len()))
|
log.Info("Persisted dirty state to disk", "size", common.StorageSize(journal.Len()), "elapsed", common.PrettyDuration(time.Since(start)))
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user