please eat my data!

Sebastian Spaeth Sebastian at SSpaeth.de
Mon Apr 12 06:33:35 PDT 2010


fsync is really killing xapian (and notmuch). What suffers, are the
boolean prefixes (tag, id, and thread). Using libeatmydata (which
disables fsync) shows a 10x speedup for tagging. The speedup is only
factor 2 for e.g. from: searches. This is ext4 on recent stock
Ubuntu. Given that search by tag and thread are performed really often
(each time I advance a thread, for example), that really hurts.

With a warm file cache and a thread containing 11 messages:

---------------------------------------------------
time notmuch tag +test -- thread:0000000000000f4e
real	0m0.677s
user	0m0.030s
sys	0m0.020s
---------------------------------------------------
time LD_PRELOAD=./libeatmydata.so notmuch tag +test -- thread:0000000000000f4e

real	0m0.040s
user	0m0.020s
sys	0m0.020s
---------------------------------------------------

However tagging ~850 messages based on a from search is "ONLY" factor 2:
------------------------------------------------------
time notmuch tag +test -- from:"sebastian at sspaeth.de"

real	0m2.355s
user	0m1.240s
sys	0m0.040s
---------------------------------------------------
time LD_PRELOAD=./libeatmydata.so notmuch tag +test -- from:"sebastian at sspaeth.de"

real	0m1.286s
user	0m1.230s
sys	0m0.010s
---------------------------------------------------


More information about the notmuch mailing list