diff --git a/rbf/db.go b/rbf/db.go index 4f88de259..68a41ac08 100644 --- a/rbf/db.go +++ b/rbf/db.go @@ -206,6 +206,13 @@ func (db *DB) checkpoint() error { return nil // skip if transactions open } + // Check if there are any WAL pages, if not do nothing as + // checkpointing and calling fsync can be very expensive even if + // there are no writes. + if db.walPageN == 0 { + return nil + } + for i := 0; i < db.walPageN; i++ { page, err := db.readWALPageAt(i) if err != nil { @@ -245,7 +252,7 @@ func (db *DB) checkpoint() error { db.walPageN = 0 db.pageMap = NewPageMap() - // Notify halted tranactions that the WAL has been checkpointed. + // Notify halted transactions that the WAL has been checkpointed. db.haltCond.Broadcast() return nil