Compact database on startup (ref #2400)

This commit is contained in:
Jakob Borg 2015-11-24 13:15:56 +01:00
parent 02f044a2a1
commit fa4b4dece1
2 changed files with 11 additions and 0 deletions

View File

@ -639,6 +639,13 @@ func syncthingMain() {
}
}
// Pack and optimize the database
if err := ldb.Compact(); err != nil {
// I don't think this is fatal, but who knows. If it is, we'll surely
// get an error when trying to write to the db later.
l.Infoln("Compacting database:", err)
}
m := model.NewModel(cfg, myID, myName, "syncthing", Version, ldb, protectedFiles)
cfg.Subscribe(m)

View File

@ -65,6 +65,10 @@ func newDBInstance(db *leveldb.DB) *Instance {
}
}
func (db *Instance) Compact() error {
return db.CompactRange(util.Range{})
}
func (db *Instance) genericReplace(folder, device []byte, fs []protocol.FileInfo, localSize, globalSize *sizeTracker, deleteFn deletionHandler) int64 {
sort.Sort(fileList(fs)) // sort list on name, same as in the database