Fix max checkpoint size check

This commit is contained in:
Ben Johnson
2021-01-05 14:17:13 -07:00
parent c22eea13ad
commit 8871d75a8e

6
db.go
View File

@@ -677,10 +677,10 @@ func (db *DB) Sync() (err error) {
// If WAL size is greater than min threshold, attempt checkpoint. // If WAL size is greater than min threshold, attempt checkpoint.
var checkpoint bool var checkpoint bool
checkpointMode := CheckpointModePassive checkpointMode := CheckpointModePassive
if newWALSize >= calcWALSize(db.pageSize, db.MinCheckpointPageN) { if db.MaxCheckpointPageN > 0 && newWALSize >= calcWALSize(db.pageSize, db.MaxCheckpointPageN) {
checkpoint = true
} else if db.MaxCheckpointPageN > 0 && newWALSize >= calcWALSize(db.pageSize, db.MaxCheckpointPageN) {
checkpoint, checkpointMode = true, CheckpointModeRestart checkpoint, checkpointMode = true, CheckpointModeRestart
} else if newWALSize >= calcWALSize(db.pageSize, db.MinCheckpointPageN) {
checkpoint = true
} else if db.CheckpointInterval > 0 && !info.dbModTime.IsZero() && time.Since(info.dbModTime) > db.CheckpointInterval && newWALSize > calcWALSize(db.pageSize, 1) { } else if db.CheckpointInterval > 0 && !info.dbModTime.IsZero() && time.Since(info.dbModTime) > db.CheckpointInterval && newWALSize > calcWALSize(db.pageSize, 1) {
checkpoint = true checkpoint = true
} }