From ac190b2e39cc37de77d56659b600e4531e3b2f06 Mon Sep 17 00:00:00 2001 From: Jakob Borg Date: Sun, 3 Jan 2016 19:08:19 +0100 Subject: [PATCH] Change DB label format (index folders, devices) --- cmd/syncthing/locations.go | 2 +- cmd/syncthing/main.go | 14 +- lib/db/.gitignore | 1 + lib/db/blockmap.go | 53 +++---- lib/db/blockmap_test.go | 11 +- lib/db/leveldb.go | 2 + lib/db/leveldb_convert.go | 114 ++++++++++++++ lib/db/leveldb_convert_test.go | 136 +++++++++++++++++ lib/db/leveldb_dbinstance.go | 245 ++++++++++++++++++++++++------- lib/db/leveldb_test.go | 7 +- lib/db/set.go | 4 +- lib/db/testdata/oldformat.db.zip | Bin 0 -> 139879 bytes lib/db/virtualmtime.go | 7 +- test/util.go | 51 ++++--- 14 files changed, 522 insertions(+), 125 deletions(-) create mode 100644 lib/db/leveldb_convert.go create mode 100644 lib/db/leveldb_convert_test.go create mode 100644 lib/db/testdata/oldformat.db.zip diff --git a/cmd/syncthing/locations.go b/cmd/syncthing/locations.go index 54c6dd86e..9fbd4d6b7 100644 --- a/cmd/syncthing/locations.go +++ b/cmd/syncthing/locations.go @@ -48,7 +48,7 @@ var locations = map[locationEnum]string{ locKeyFile: "${config}/key.pem", locHTTPSCertFile: "${config}/https-cert.pem", locHTTPSKeyFile: "${config}/https-key.pem", - locDatabase: "${config}/index-v0.11.0.db", + locDatabase: "${config}/index-v0.13.0.db", locLogFile: "${config}/syncthing.log", // -logfile on Windows locCsrfTokens: "${config}/csrftokens.txt", locPanicLog: "${config}/panic-${timestamp}.log", diff --git a/cmd/syncthing/main.go b/cmd/syncthing/main.go index 012584071..b21350fda 100644 --- a/cmd/syncthing/main.go +++ b/cmd/syncthing/main.go @@ -633,6 +633,7 @@ func syncthingMain(runtimeOptions RuntimeOptions) { dbFile := locations[locDatabase] ldb, err := db.Open(dbFile) + if err != nil { l.Fatalln("Cannot open database:", err, "- Is another copy of Syncthing already running?") } @@ -1153,12 +1154,13 @@ func autoUpgrade(cfg *config.Wrapper) { // suitable time after they have gone out of fashion. func cleanConfigDirectory() { patterns := map[string]time.Duration{ - "panic-*.log": 7 * 24 * time.Hour, // keep panic logs for a week - "audit-*.log": 7 * 24 * time.Hour, // keep audit logs for a week - "index": 14 * 24 * time.Hour, // keep old index format for two weeks - "config.xml.v*": 30 * 24 * time.Hour, // old config versions for a month - "*.idx.gz": 30 * 24 * time.Hour, // these should for sure no longer exist - "backup-of-v0.8": 30 * 24 * time.Hour, // these neither + "panic-*.log": 7 * 24 * time.Hour, // keep panic logs for a week + "audit-*.log": 7 * 24 * time.Hour, // keep audit logs for a week + "index": 14 * 24 * time.Hour, // keep old index format for two weeks + "index*.converted": 14 * 24 * time.Hour, // keep old converted indexes for two weeks + "config.xml.v*": 30 * 24 * time.Hour, // old config versions for a month + "*.idx.gz": 30 * 24 * time.Hour, // these should for sure no longer exist + "backup-of-v0.8": 30 * 24 * time.Hour, // these neither } for pat, dur := range patterns { diff --git a/lib/db/.gitignore b/lib/db/.gitignore index 54f299079..d5316784f 100644 --- a/lib/db/.gitignore +++ b/lib/db/.gitignore @@ -1 +1,2 @@ +!*.zip testdata/*.db diff --git a/lib/db/blockmap.go b/lib/db/blockmap.go index a1dd333c7..57c3fb118 100644 --- a/lib/db/blockmap.go +++ b/lib/db/blockmap.go @@ -4,16 +4,9 @@ // License, v. 2.0. If a copy of the MPL was not distributed with this file, // You can obtain one at http://mozilla.org/MPL/2.0/. -// Package db provides a set type to track local/remote files with newness -// checks. We must do a certain amount of normalization in here. We will get -// fed paths with either native or wire-format separators and encodings -// depending on who calls us. We transform paths to wire-format (NFC and -// slashes) on the way to the database, and transform to native format -// (varying separator and encoding) on the way back out. package db import ( - "bytes" "encoding/binary" "fmt" @@ -30,10 +23,10 @@ const maxBatchSize = 256 << 10 type BlockMap struct { db *Instance - folder string + folder uint32 } -func NewBlockMap(db *Instance, folder string) *BlockMap { +func NewBlockMap(db *Instance, folder uint32) *BlockMap { return &BlockMap{ db: db, folder: folder, @@ -123,7 +116,7 @@ func (m *BlockMap) Discard(files []protocol.FileInfo) error { // Drop block map, removing all entries related to this block map from the db. func (m *BlockMap) Drop() error { batch := new(leveldb.Batch) - iter := m.db.NewIterator(util.BytesPrefix(m.blockKeyInto(nil, nil, "")[:1+64]), nil) + iter := m.db.NewIterator(util.BytesPrefix(m.blockKeyInto(nil, nil, "")[:keyPrefixLen+keyFolderLen]), nil) defer iter.Release() for iter.Next() { if batch.Len() > maxBatchSize { @@ -173,12 +166,13 @@ func (f *BlockFinder) String() string { func (f *BlockFinder) Iterate(folders []string, hash []byte, iterFn func(string, string, int32) bool) bool { var key []byte for _, folder := range folders { - key = blockKeyInto(key, hash, folder, "") + folderID := f.db.folderIdx.ID([]byte(folder)) + key = blockKeyInto(key, hash, folderID, "") iter := f.db.NewIterator(util.BytesPrefix(key), nil) defer iter.Release() for iter.Next() && iter.Error() == nil { - folder, file := fromBlockKey(iter.Key()) + file := blockKeyName(iter.Key()) index := int32(binary.BigEndian.Uint32(iter.Value())) if iterFn(folder, osutil.NativeFilename(file), index) { return true @@ -194,48 +188,41 @@ func (f *BlockFinder) Fix(folder, file string, index int32, oldHash, newHash []b buf := make([]byte, 4) binary.BigEndian.PutUint32(buf, uint32(index)) + folderID := f.db.folderIdx.ID([]byte(folder)) batch := new(leveldb.Batch) - batch.Delete(blockKeyInto(nil, oldHash, folder, file)) - batch.Put(blockKeyInto(nil, newHash, folder, file), buf) + batch.Delete(blockKeyInto(nil, oldHash, folderID, file)) + batch.Put(blockKeyInto(nil, newHash, folderID, file), buf) return f.db.Write(batch, nil) } // m.blockKey returns a byte slice encoding the following information: // keyTypeBlock (1 byte) -// folder (64 bytes) +// folder (4 bytes) // block hash (32 bytes) // file name (variable size) -func blockKeyInto(o, hash []byte, folder, file string) []byte { - reqLen := 1 + 64 + 32 + len(file) +func blockKeyInto(o, hash []byte, folder uint32, file string) []byte { + reqLen := keyPrefixLen + keyFolderLen + keyHashLen + len(file) if cap(o) < reqLen { o = make([]byte, reqLen) } else { o = o[:reqLen] } o[0] = KeyTypeBlock - copy(o[1:], []byte(folder)) - for i := len(folder); i < 64; i++ { - o[1+i] = 0 - } - copy(o[1+64:], []byte(hash)) - copy(o[1+64+32:], []byte(file)) + binary.BigEndian.PutUint32(o[keyPrefixLen:], folder) + copy(o[keyPrefixLen+keyFolderLen:], []byte(hash)) + copy(o[keyPrefixLen+keyFolderLen+keyHashLen:], []byte(file)) return o } -func fromBlockKey(data []byte) (string, string) { - if len(data) < 1+64+32+1 { +// blockKeyName returns the file name from the block key +func blockKeyName(data []byte) string { + if len(data) < keyPrefixLen+keyFolderLen+keyHashLen+1 { panic("Incorrect key length") } if data[0] != KeyTypeBlock { panic("Incorrect key type") } - file := string(data[1+64+32:]) - - slice := data[1 : 1+64] - izero := bytes.IndexByte(slice, 0) - if izero > -1 { - return string(slice[:izero]), file - } - return string(slice), file + file := string(data[keyPrefixLen+keyFolderLen+keyHashLen:]) + return file } diff --git a/lib/db/blockmap_test.go b/lib/db/blockmap_test.go index a3317c6d3..598f13e3d 100644 --- a/lib/db/blockmap_test.go +++ b/lib/db/blockmap_test.go @@ -10,6 +10,7 @@ import ( "testing" "github.com/syncthing/syncthing/lib/protocol" + "github.com/syndtr/goleveldb/leveldb/util" ) func genBlocks(n int) []protocol.BlockInfo { @@ -55,7 +56,7 @@ func setup() (*Instance, *BlockFinder) { } func dbEmpty(db *Instance) bool { - iter := db.NewIterator(nil, nil) + iter := db.NewIterator(util.BytesPrefix([]byte{KeyTypeBlock}), nil) defer iter.Release() if iter.Next() { return false @@ -70,7 +71,7 @@ func TestBlockMapAddUpdateWipe(t *testing.T) { t.Fatal("db not empty") } - m := NewBlockMap(db, "folder1") + m := NewBlockMap(db, db.folderIdx.ID([]byte("folder1"))) f3.Flags |= protocol.FlagDirectory @@ -152,8 +153,8 @@ func TestBlockMapAddUpdateWipe(t *testing.T) { func TestBlockFinderLookup(t *testing.T) { db, f := setup() - m1 := NewBlockMap(db, "folder1") - m2 := NewBlockMap(db, "folder2") + m1 := NewBlockMap(db, db.folderIdx.ID([]byte("folder1"))) + m2 := NewBlockMap(db, db.folderIdx.ID([]byte("folder2"))) err := m1.Add([]protocol.FileInfo{f1}) if err != nil { @@ -221,7 +222,7 @@ func TestBlockFinderFix(t *testing.T) { return true } - m := NewBlockMap(db, "folder1") + m := NewBlockMap(db, db.folderIdx.ID([]byte("folder1"))) err := m.Add([]protocol.FileInfo{f1}) if err != nil { t.Fatal(err) diff --git a/lib/db/leveldb.go b/lib/db/leveldb.go index 896e3ee04..0e75b0ddc 100644 --- a/lib/db/leveldb.go +++ b/lib/db/leveldb.go @@ -42,6 +42,8 @@ const ( KeyTypeDeviceStatistic KeyTypeFolderStatistic KeyTypeVirtualMtime + KeyTypeFolderIdx + KeyTypeDeviceIdx ) type fileVersion struct { diff --git a/lib/db/leveldb_convert.go b/lib/db/leveldb_convert.go new file mode 100644 index 000000000..b12cbe437 --- /dev/null +++ b/lib/db/leveldb_convert.go @@ -0,0 +1,114 @@ +// Copyright (C) 2015 The Syncthing Authors. +// +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this file, +// You can obtain one at http://mozilla.org/MPL/2.0/. + +package db + +import ( + "bytes" + + "github.com/syndtr/goleveldb/leveldb" +) + +// convertKeyFormat converts from the v0.12 to the v0.13 database format, to +// avoid having to do rescan. The change is in the key format for folder +// labels, so we basically just iterate over the database rewriting keys as +// necessary. +func convertKeyFormat(from, to *leveldb.DB) error { + l.Infoln("Converting database key format") + blocks, files, globals, unchanged := 0, 0, 0, 0 + + dbi := newDBInstance(to) + i := from.NewIterator(nil, nil) + for i.Next() { + key := i.Key() + switch key[0] { + case KeyTypeBlock: + folder, file := oldFromBlockKey(key) + folderIdx := dbi.folderIdx.ID([]byte(folder)) + hash := key[1+64:] + newKey := blockKeyInto(nil, hash, folderIdx, file) + if err := to.Put(newKey, i.Value(), nil); err != nil { + return err + } + blocks++ + + case KeyTypeDevice: + newKey := dbi.deviceKey(oldDeviceKeyFolder(key), oldDeviceKeyDevice(key), oldDeviceKeyName(key)) + if err := to.Put(newKey, i.Value(), nil); err != nil { + return err + } + files++ + + case KeyTypeGlobal: + newKey := dbi.globalKey(oldGlobalKeyFolder(key), oldGlobalKeyName(key)) + if err := to.Put(newKey, i.Value(), nil); err != nil { + return err + } + globals++ + + case KeyTypeVirtualMtime: + // Cannot be converted, we drop it instead :( + + default: + if err := to.Put(key, i.Value(), nil); err != nil { + return err + } + unchanged++ + } + } + + l.Infof("Converted %d blocks, %d files, %d globals (%d unchanged).", blocks, files, globals, unchanged) + + return nil +} + +func oldDeviceKeyFolder(key []byte) []byte { + folder := key[1 : 1+64] + izero := bytes.IndexByte(folder, 0) + if izero < 0 { + return folder + } + return folder[:izero] +} + +func oldDeviceKeyDevice(key []byte) []byte { + return key[1+64 : 1+64+32] +} + +func oldDeviceKeyName(key []byte) []byte { + return key[1+64+32:] +} + +func oldGlobalKeyName(key []byte) []byte { + return key[1+64:] +} + +func oldGlobalKeyFolder(key []byte) []byte { + folder := key[1 : 1+64] + izero := bytes.IndexByte(folder, 0) + if izero < 0 { + return folder + } + return folder[:izero] +} + +func oldFromBlockKey(data []byte) (string, string) { + if len(data) < 1+64+32+1 { + panic("Incorrect key length") + } + if data[0] != KeyTypeBlock { + panic("Incorrect key type") + } + + file := string(data[1+64+32:]) + + slice := data[1 : 1+64] + izero := bytes.IndexByte(slice, 0) + if izero > -1 { + return string(slice[:izero]), file + } + return string(slice), file +} diff --git a/lib/db/leveldb_convert_test.go b/lib/db/leveldb_convert_test.go new file mode 100644 index 000000000..468684819 --- /dev/null +++ b/lib/db/leveldb_convert_test.go @@ -0,0 +1,136 @@ +// Copyright (C) 2015 The Syncthing Authors. +// +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this file, +// You can obtain one at http://mozilla.org/MPL/2.0/. + +package db + +import ( + "archive/zip" + "io" + "os" + "path/filepath" + "testing" + + "github.com/syndtr/goleveldb/leveldb" +) + +func TestLabelConversion(t *testing.T) { + os.RemoveAll("testdata/oldformat.db") + defer os.RemoveAll("testdata/oldformat.db") + os.RemoveAll("testdata/newformat.db") + defer os.RemoveAll("testdata/newformat.db") + + if err := unzip("testdata/oldformat.db.zip", "testdata"); err != nil { + t.Fatal(err) + } + + odb, err := leveldb.OpenFile("testdata/oldformat.db", nil) + if err != nil { + t.Fatal(err) + } + + ldb, err := leveldb.OpenFile("testdata/newformat.db", nil) + if err != nil { + t.Fatal(err) + } + + if err = convertKeyFormat(odb, ldb); err != nil { + t.Fatal(err) + } + ldb.Close() + odb.Close() + + inst, err := Open("testdata/newformat.db") + if err != nil { + t.Fatal(err) + } + + fs := NewFileSet("default", inst) + files, deleted, _ := fs.GlobalSize() + if files+deleted != 953 { + // Expected number of global entries determined by + // ../../bin/stindex testdata/oldformat.db/ | grep global | grep -c default + t.Errorf("Conversion error, global list differs (%d != 953)", files+deleted) + } + + files, deleted, _ = fs.LocalSize() + if files+deleted != 953 { + t.Errorf("Conversion error, device list differs (%d != 953)", files+deleted) + } + + f := NewBlockFinder(inst) + // [block] F:"default" H:1c25dea9003cc16216e2a22900be1ec1cc5aaf270442904e2f9812c314e929d8 N:"f/f2/f25f1b3e6e029231b933531b2138796d" I:3 + h := []byte{0x1c, 0x25, 0xde, 0xa9, 0x00, 0x3c, 0xc1, 0x62, 0x16, 0xe2, 0xa2, 0x29, 0x00, 0xbe, 0x1e, 0xc1, 0xcc, 0x5a, 0xaf, 0x27, 0x04, 0x42, 0x90, 0x4e, 0x2f, 0x98, 0x12, 0xc3, 0x14, 0xe9, 0x29, 0xd8} + found := 0 + f.Iterate([]string{"default"}, h, func(folder, file string, idx int32) bool { + if folder == "default" && file == filepath.FromSlash("f/f2/f25f1b3e6e029231b933531b2138796d") && idx == 3 { + found++ + } + return true + }) + if found != 1 { + t.Errorf("Found %d blocks instead of expected 1", found) + } + + inst.Close() +} + +func unzip(src, dest string) error { + r, err := zip.OpenReader(src) + if err != nil { + return err + } + defer func() { + if err := r.Close(); err != nil { + panic(err) + } + }() + + os.MkdirAll(dest, 0755) + + // Closure to address file descriptors issue with all the deferred .Close() methods + extractAndWriteFile := func(f *zip.File) error { + rc, err := f.Open() + if err != nil { + return err + } + defer func() { + if err := rc.Close(); err != nil { + panic(err) + } + }() + + path := filepath.Join(dest, f.Name) + + if f.FileInfo().IsDir() { + os.MkdirAll(path, f.Mode()) + } else { + f, err := os.OpenFile(path, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, f.Mode()) + if err != nil { + return err + } + defer func() { + if err := f.Close(); err != nil { + panic(err) + } + }() + + _, err = io.Copy(f, rc) + if err != nil { + return err + } + } + return nil + } + + for _, f := range r.File { + err := extractAndWriteFile(f) + if err != nil { + return err + } + } + + return nil +} diff --git a/lib/db/leveldb_dbinstance.go b/lib/db/leveldb_dbinstance.go index 9814fdd74..f432d99e3 100644 --- a/lib/db/leveldb_dbinstance.go +++ b/lib/db/leveldb_dbinstance.go @@ -8,11 +8,15 @@ package db import ( "bytes" + "encoding/binary" "os" + "path/filepath" "sort" "strings" + "github.com/syncthing/syncthing/lib/osutil" "github.com/syncthing/syncthing/lib/protocol" + "github.com/syncthing/syncthing/lib/sync" "github.com/syndtr/goleveldb/leveldb" "github.com/syndtr/goleveldb/leveldb/errors" "github.com/syndtr/goleveldb/leveldb/iterator" @@ -25,14 +29,33 @@ type deletionHandler func(t readWriteTransaction, folder, device, name []byte, d type Instance struct { *leveldb.DB + folderIdx *smallIndex + deviceIdx *smallIndex } +const ( + keyPrefixLen = 1 + keyFolderLen = 4 // indexed + keyDeviceLen = 4 // indexed + keyHashLen = 32 +) + func Open(file string) (*Instance, error) { opts := &opt.Options{ OpenFilesCacheCapacity: 100, WriteBuffer: 4 << 20, } + if _, err := os.Stat(file); os.IsNotExist(err) { + // The file we are looking to open does not exist. This may be the + // first launch so we should look for an old version and try to + // convert it. + if err := checkConvertDatabase(file); err != nil { + l.Infoln("Converting old database:", err) + l.Infoln("Will rescan from scratch.") + } + } + db, err := leveldb.OpenFile(file, opts) if leveldbIsCorrupted(err) { db, err = leveldb.RecoverFile(file, opts) @@ -60,9 +83,12 @@ func OpenMemory() *Instance { } func newDBInstance(db *leveldb.DB) *Instance { - return &Instance{ + i := &Instance{ DB: db, } + i.folderIdx = newSmallIndex(i, []byte{KeyTypeFolderIdx}) + i.deviceIdx = newSmallIndex(i, []byte{KeyTypeDeviceIdx}) + return i } func (db *Instance) Compact() error { @@ -72,13 +98,10 @@ func (db *Instance) Compact() error { 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 - start := db.deviceKey(folder, device, nil) // before all folder/device files - limit := db.deviceKey(folder, device, []byte{0xff, 0xff, 0xff, 0xff}) // after all folder/device files - t := db.newReadWriteTransaction() defer t.close() - dbi := t.NewIterator(&util.Range{Start: start, Limit: limit}, nil) + dbi := t.NewIterator(util.BytesPrefix(db.deviceKey(folder, device, nil)[:keyPrefixLen+keyFolderLen+keyDeviceLen]), nil) defer dbi.Release() moreDb := dbi.Next() @@ -237,13 +260,10 @@ func (db *Instance) updateFiles(folder, device []byte, fs []protocol.FileInfo, l } func (db *Instance) withHave(folder, device []byte, truncate bool, fn Iterator) { - start := db.deviceKey(folder, device, nil) // before all folder/device files - limit := db.deviceKey(folder, device, []byte{0xff, 0xff, 0xff, 0xff}) // after all folder/device files - t := db.newReadOnlyTransaction() defer t.close() - dbi := t.NewIterator(&util.Range{Start: start, Limit: limit}, nil) + dbi := t.NewIterator(util.BytesPrefix(db.deviceKey(folder, device, nil)[:keyPrefixLen+keyFolderLen+keyDeviceLen]), nil) defer dbi.Release() for dbi.Next() { @@ -258,13 +278,10 @@ func (db *Instance) withHave(folder, device []byte, truncate bool, fn Iterator) } func (db *Instance) withAllFolderTruncated(folder []byte, fn func(device []byte, f FileInfoTruncated) bool) { - start := db.deviceKey(folder, nil, nil) // before all folder/device files - limit := db.deviceKey(folder, protocol.LocalDeviceID[:], []byte{0xff, 0xff, 0xff, 0xff}) // after all folder/device files - t := db.newReadWriteTransaction() defer t.close() - dbi := t.NewIterator(&util.Range{Start: start, Limit: limit}, nil) + dbi := t.NewIterator(util.BytesPrefix(db.deviceKey(folder, nil, nil)[:keyPrefixLen+keyFolderLen]), nil) defer dbi.Release() for dbi.Next() { @@ -359,7 +376,10 @@ func (db *Instance) withGlobal(folder, prefix []byte, truncate bool, fn Iterator l.Debugf("vl.versions[0].device: %x", vl.versions[0].device) l.Debugf("name: %q (%x)", name, name) l.Debugf("fk: %q", fk) - l.Debugf("fk: %x %x %x", fk[1:1+64], fk[1+64:1+64+32], fk[1+64+32:]) + l.Debugf("fk: %x %x %x", + fk[keyPrefixLen:keyPrefixLen+keyFolderLen], + fk[keyPrefixLen+keyFolderLen:keyPrefixLen+keyFolderLen+keyDeviceLen], + fk[keyPrefixLen+keyFolderLen+keyDeviceLen:]) panic(err) } @@ -403,13 +423,10 @@ func (db *Instance) availability(folder, file []byte) []protocol.DeviceID { } func (db *Instance) withNeed(folder, device []byte, truncate bool, fn Iterator) { - start := db.globalKey(folder, nil) - limit := db.globalKey(folder, []byte{0xff, 0xff, 0xff, 0xff}) - t := db.newReadOnlyTransaction() defer t.close() - dbi := t.NewIterator(&util.Range{Start: start, Limit: limit}, nil) + dbi := t.NewIterator(util.BytesPrefix(db.globalKey(folder, nil)[:keyPrefixLen+keyFolderLen]), nil) defer dbi.Release() var fk []byte @@ -546,9 +563,7 @@ func (db *Instance) checkGlobals(folder []byte, globalSize *sizeTracker) { t := db.newReadWriteTransaction() defer t.close() - start := db.globalKey(folder, nil) - limit := db.globalKey(folder, []byte{0xff, 0xff, 0xff, 0xff}) - dbi := t.NewIterator(&util.Range{Start: start, Limit: limit}, nil) + dbi := t.NewIterator(util.BytesPrefix(db.globalKey(folder, nil)[:keyPrefixLen+keyFolderLen]), nil) defer dbi.Release() var fk []byte @@ -598,71 +613,72 @@ func (db *Instance) checkGlobals(folder []byte, globalSize *sizeTracker) { // deviceKey returns a byte slice encoding the following information: // keyTypeDevice (1 byte) -// folder (64 bytes) -// device (32 bytes) +// folder (4 bytes) +// device (4 bytes) // name (variable size) func (db *Instance) deviceKey(folder, device, file []byte) []byte { return db.deviceKeyInto(nil, folder, device, file) } func (db *Instance) deviceKeyInto(k []byte, folder, device, file []byte) []byte { - reqLen := 1 + 64 + 32 + len(file) + reqLen := keyPrefixLen + keyFolderLen + keyDeviceLen + len(file) if len(k) < reqLen { k = make([]byte, reqLen) } k[0] = KeyTypeDevice - if len(folder) > 64 { - panic("folder name too long") - } - copy(k[1:], []byte(folder)) - copy(k[1+64:], device[:]) - copy(k[1+64+32:], []byte(file)) + binary.BigEndian.PutUint32(k[keyPrefixLen:], db.folderIdx.ID(folder)) + binary.BigEndian.PutUint32(k[keyPrefixLen+keyFolderLen:], db.deviceIdx.ID(device)) + copy(k[keyPrefixLen+keyFolderLen+keyDeviceLen:], []byte(file)) return k[:reqLen] } +// deviceKeyName returns the device ID from the key func (db *Instance) deviceKeyName(key []byte) []byte { - return key[1+64+32:] + return key[keyPrefixLen+keyFolderLen+keyDeviceLen:] } +// deviceKeyFolder returns the folder name from the key func (db *Instance) deviceKeyFolder(key []byte) []byte { - folder := key[1 : 1+64] - izero := bytes.IndexByte(folder, 0) - if izero < 0 { - return folder + folder, ok := db.folderIdx.Val(binary.BigEndian.Uint32(key[keyPrefixLen:])) + if !ok { + panic("bug: lookup of nonexistent folder ID") } - return folder[:izero] + return folder } +// deviceKeyDevice returns the device ID from the key func (db *Instance) deviceKeyDevice(key []byte) []byte { - return key[1+64 : 1+64+32] + device, ok := db.deviceIdx.Val(binary.BigEndian.Uint32(key[keyPrefixLen+keyFolderLen:])) + if !ok { + panic("bug: lookup of nonexistent device ID") + } + return device } // globalKey returns a byte slice encoding the following information: // keyTypeGlobal (1 byte) -// folder (64 bytes) +// folder (4 bytes) // name (variable size) func (db *Instance) globalKey(folder, file []byte) []byte { - k := make([]byte, 1+64+len(file)) + k := make([]byte, keyPrefixLen+keyFolderLen+len(file)) k[0] = KeyTypeGlobal - if len(folder) > 64 { - panic("folder name too long") - } - copy(k[1:], []byte(folder)) - copy(k[1+64:], []byte(file)) + binary.BigEndian.PutUint32(k[keyPrefixLen:], db.folderIdx.ID(folder)) + copy(k[keyPrefixLen+keyFolderLen:], []byte(file)) return k } +// globalKeyName returns the filename from the key func (db *Instance) globalKeyName(key []byte) []byte { - return key[1+64:] + return key[keyPrefixLen+keyFolderLen:] } +// globalKeyFolder returns the folder name from the key func (db *Instance) globalKeyFolder(key []byte) []byte { - folder := key[1 : 1+64] - izero := bytes.IndexByte(folder, 0) - if izero < 0 { - return folder + folder, ok := db.folderIdx.Val(binary.BigEndian.Uint32(key[keyPrefixLen:])) + if !ok { + panic("bug: lookup of nonexistent folder ID") } - return folder[:izero] + return folder } func unmarshalTrunc(bs []byte, truncate bool) (FileIntf, error) { @@ -692,3 +708,132 @@ func leveldbIsCorrupted(err error) bool { return false } + +// checkConvertDatabase tries to convert an existing old (v0.11) database to +// new (v0.13) format. +func checkConvertDatabase(dbFile string) error { + oldLoc := filepath.Join(filepath.Dir(dbFile), "index-v0.11.0.db") + if _, err := os.Stat(oldLoc); os.IsNotExist(err) { + // The old database file does not exist; that's ok, continue as if + // everything succeeded. + return nil + } else if err != nil { + // Any other error is weird. + return err + } + + // There exists a database in the old format. We run a one time + // conversion from old to new. + + fromDb, err := leveldb.OpenFile(oldLoc, nil) + if err != nil { + return err + } + + toDb, err := leveldb.OpenFile(dbFile, nil) + if err != nil { + return err + } + + err = convertKeyFormat(fromDb, toDb) + if err != nil { + return err + } + + err = toDb.Close() + if err != nil { + return err + } + + // We've done this one, we don't want to do it again (if the user runs + // -reset or so). We don't care too much about errors any more at this stage. + fromDb.Close() + osutil.Rename(oldLoc, oldLoc+".converted") + + return nil +} + +// A smallIndex is an in memory bidirectional []byte to uint32 map. It gives +// fast lookups in both directions and persists to the database. Don't use for +// storing more items than fit comfortably in RAM. +type smallIndex struct { + db *Instance + prefix []byte + id2val map[uint32]string + val2id map[string]uint32 + nextID uint32 + mut sync.Mutex +} + +func newSmallIndex(db *Instance, prefix []byte) *smallIndex { + idx := &smallIndex{ + db: db, + prefix: prefix, + id2val: make(map[uint32]string), + val2id: make(map[string]uint32), + mut: sync.NewMutex(), + } + idx.load() + return idx +} + +// load iterates over the prefix space in the database and populates the in +// memory maps. +func (i *smallIndex) load() { + tr := i.db.newReadOnlyTransaction() + it := tr.NewIterator(util.BytesPrefix(i.prefix), nil) + for it.Next() { + val := string(it.Value()) + id := binary.BigEndian.Uint32(it.Key()[len(i.prefix):]) + i.id2val[id] = val + i.val2id[val] = id + if id >= i.nextID { + i.nextID = id + 1 + } + } + it.Release() + tr.close() +} + +// ID returns the index number for the given byte slice, allocating a new one +// and persisting this to the database if necessary. +func (i *smallIndex) ID(val []byte) uint32 { + i.mut.Lock() + // intentionally avoiding defer here as we want this call to be as fast as + // possible in the general case (folder ID already exists). The map lookup + // with the conversion of []byte to string is compiler optimized to not + // copy the []byte, which is why we don't assign it to a temp variable + // here. + if id, ok := i.val2id[string(val)]; ok { + i.mut.Unlock() + return id + } + + id := i.nextID + i.nextID++ + + valStr := string(val) + i.val2id[valStr] = id + i.id2val[id] = valStr + + key := make([]byte, len(i.prefix)+8) // prefix plus uint32 id + copy(key, i.prefix) + binary.BigEndian.PutUint32(key[len(i.prefix):], id) + i.db.Put(key, val, nil) + + i.mut.Unlock() + return id +} + +// Val returns the value for the given index number, or (nil, false) if there +// is no such index number. +func (i *smallIndex) Val(id uint32) ([]byte, bool) { + i.mut.Lock() + val, ok := i.id2val[id] + i.mut.Unlock() + if !ok { + return nil, false + } + + return []byte(val), true +} diff --git a/lib/db/leveldb_test.go b/lib/db/leveldb_test.go index 823da1b9e..ae7d7792a 100644 --- a/lib/db/leveldb_test.go +++ b/lib/db/leveldb_test.go @@ -16,7 +16,9 @@ func TestDeviceKey(t *testing.T) { dev := []byte("device67890123456789012345678901") name := []byte("name") - db := &Instance{} + db := OpenMemory() + db.folderIdx.ID(fld) + db.deviceIdx.ID(dev) key := db.deviceKey(fld, dev, name) @@ -38,7 +40,8 @@ func TestGlobalKey(t *testing.T) { fld := []byte("folder6789012345678901234567890123456789012345678901234567890123") name := []byte("name") - db := &Instance{} + db := OpenMemory() + db.folderIdx.ID(fld) key := db.globalKey(fld, name) diff --git a/lib/db/set.go b/lib/db/set.go index 481adbe6e..d23e6ecaf 100644 --- a/lib/db/set.go +++ b/lib/db/set.go @@ -97,7 +97,7 @@ func NewFileSet(folder string, db *Instance) *FileSet { localVersion: make(map[protocol.DeviceID]int64), folder: folder, db: db, - blockmap: NewBlockMap(db, folder), + blockmap: NewBlockMap(db, db.folderIdx.ID([]byte(folder))), mutex: sync.NewMutex(), } @@ -244,7 +244,7 @@ func DropFolder(db *Instance, folder string) { db.dropFolder([]byte(folder)) bm := &BlockMap{ db: db, - folder: folder, + folder: db.folderIdx.ID([]byte(folder)), } bm.Drop() NewVirtualMtimeRepo(db, folder).Drop() diff --git a/lib/db/testdata/oldformat.db.zip b/lib/db/testdata/oldformat.db.zip new file mode 100644 index 0000000000000000000000000000000000000000..692b33d05c80b94564f2779c2a4216e54c7de40d GIT binary patch literal 139879 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 ^#NbX4(~CQ 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 3 && rand.Float64() < 0.2: - if !info.Mode().IsRegular() { - err = removeAll(path) - if err != nil { + /* + This doesn't in fact work. Sometimes it appears to. We need to get this sorted... + + // Switch between files and directories + case r == 3 && comps > 3 && rand.Float64() < 0.2: + if !info.Mode().IsRegular() { + err = removeAll(path) + if err != nil { + return err + } + d1 := []byte("I used to be a dir: " + path) + err := ioutil.WriteFile(path, d1, 0644) + if err != nil { + return err + } + } else { + err := osutil.Remove(path) + if err != nil { + return err + } + err = os.MkdirAll(path, 0755) + if err != nil { + return err + } + generateFiles(path, 10, 20, "../LICENSE") + } return err - } - d1 := []byte("I used to be a dir: " + path) - err := ioutil.WriteFile(path, d1, 0644) - if err != nil { - return err - } - } else { - err := osutil.Remove(path) - if err != nil { - return err - } - err = os.MkdirAll(path, 0755) - if err != nil { - return err - } - generateFiles(path, 10, 20, "../LICENSE") - } - return err + */ /* This fails. Bug?