From ad2680aebabe9a91d4f89f37a76fe9d4783e716d Mon Sep 17 00:00:00 2001 From: Andrey Smirnov Date: Thu, 13 Feb 2014 12:32:12 +0400 Subject: [PATCH] Use batched writes to DB when saving packages from the mirror. --- debian/remote.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/debian/remote.go b/debian/remote.go index ede3862c..bf10d44a 100644 --- a/debian/remote.go +++ b/debian/remote.go @@ -319,12 +319,18 @@ func (repo *RemoteRepo) Download(d utils.Downloader, packageCollection *PackageC d.GetProgress().InitBar(int64(list.Len()), false) + packageCollection.db.StartBatch() + // Save package meta information to DB err := list.ForEach(func(p *Package) error { d.GetProgress().AddBar(1) return packageCollection.Update(p) }) + if err != nil { + return fmt.Errorf("unable to save packages to db: %s", err) + } + err = packageCollection.db.FinishBatch() if err != nil { return fmt.Errorf("unable to save packages to db: %s", err) }