TOFU performance / DB format

Neal H. Walfield neal at
Fri Oct 23 23:22:51 CEST 2015

At Fri, 23 Oct 2015 21:10:41 +0200,
Werner Koch wrote:
> On Fri, 23 Oct 2015 19:09, neal at said:
> > In 7f65e84, I added an interface to enable batch updates.  This was
> > based on the observation that SQLite performs better when there is a
> > single big transaction instead of many small transactions [1].  This
> I have not looked at the patch but I assume that you now do a
> BEGIN_TRANSACTION and a single COMMIT at the end of the key listing
> instead of the default auto-commit mode.  Given that this is now a
> single large transaction, I wonder how the system behaves if several
> gpg instances start a Key listing at about the same time.
> Kleopatra is known for doing this in some cases.

If the DB is locked, I've configured sqlite to wait up to 5 seconds
before aborting.  Because there are situations where this might not be
enough, my plan to to drop, yield and then retake the big lock

> >   $ rm -rf tofu.d*; time  gpg2 --trust-mode=tofu --tofu-db-format=flat -k >/dev/null
> >   real	0m0.161s
> >   user	0m0.052s
> >   sys	0m0.004s
> Now many keys?



:) Neal

More information about the Gnupg-devel mailing list