From 2306c6d989b3fa6f7b2db5cc9b89b2c1ae4d60de Mon Sep 17 00:00:00 2001 From: Jakob Borg Date: Fri, 29 Aug 2025 16:58:38 +0200 Subject: [PATCH] chore(db): benchmark output, migration blocks/s output (#10320) Just minor tweaks --- internal/db/sqlite/db_bench_test.go | 19 ++++++++++++++++++- lib/syncthing/utils.go | 2 +- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/internal/db/sqlite/db_bench_test.go b/internal/db/sqlite/db_bench_test.go index 8478c0cba..5c4f07b14 100644 --- a/internal/db/sqlite/db_bench_test.go +++ b/internal/db/sqlite/db_bench_test.go @@ -31,10 +31,16 @@ func BenchmarkUpdate(b *testing.B) { }) fs := make([]protocol.FileInfo, 100) + t0 := time.Now() seed := 0 size := 1000 - const numBlocks = 1000 + const numBlocks = 500 + + fdb, err := db.getFolderDB(folderID, true) + if err != nil { + b.Fatal(err) + } for size < 200_000 { for { @@ -54,6 +60,17 @@ func BenchmarkUpdate(b *testing.B) { } } + var files, blocks int + if err := fdb.sql.QueryRowx(`SELECT count(*) FROM files`).Scan(&files); err != nil { + b.Fatal(err) + } + if err := fdb.sql.QueryRowx(`SELECT count(*) FROM blocks`).Scan(&blocks); err != nil { + b.Fatal(err) + } + + d := time.Since(t0) + b.Logf("t=%s, files=%d, blocks=%d, files/s=%.01f, blocks/s=%.01f", d, files, blocks, float64(files)/d.Seconds(), float64(blocks)/d.Seconds()) + b.Run(fmt.Sprintf("n=Insert100Loc/size=%d", size), func(b *testing.B) { for range b.N { for i := range fs { diff --git a/lib/syncthing/utils.go b/lib/syncthing/utils.go index 3d728ef4b..f59aaf819 100644 --- a/lib/syncthing/utils.go +++ b/lib/syncthing/utils.go @@ -236,7 +236,7 @@ func TryMigrateDatabase(ctx context.Context, deleteRetention time.Duration, apiA if time.Since(t1) > 10*time.Second { d := time.Since(t0) + 1 t1 = time.Now() - slog.Info("Still migrating folder", "folder", folder, "files", files, "blocks", blocks, "duration", d.Truncate(time.Second), "filesrate", float64(files)/d.Seconds()) + slog.Info("Still migrating folder", "folder", folder, "files", files, "blocks", blocks, "duration", d.Truncate(time.Second), "blocksrate", float64(blocks)/d.Seconds(), "filesrate", float64(files)/d.Seconds()) } } }