mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-25 04:18:08 +01:00
9ad19e4454
This is intended to fix the slow behaviour of "notmuch new" (and possibly "notmuch reindex") when large numbers of files are deleted. The underlying issue [1] seems to be the Xapian glass backend spending a large amount of time in db.has_positions when running queries with large-ish amounts of unflushed changes. This commit removes two uses of Xapian queries [2], and replaces them with an approximation of what Xapian would do after optimizing the queries. This avoids the calls to has_positions (which are in any case un-needed because we are only using boolean terms here). [1] Thanks to "andres" on IRC for narrowing down the performance bottleneck. [2] Thanks to Olly Betts of Xapian fame for talking me a through a fix that does not require people to update Xapian. |
||
---|---|---|
.. | ||
add-message.cc | ||
built-with.c | ||
config.cc | ||
database-private.h | ||
database.cc | ||
directory.cc | ||
features.cc | ||
filenames.c | ||
index.cc | ||
indexopts.c | ||
Makefile | ||
Makefile.local | ||
message-file.c | ||
message-id.c | ||
message-private.h | ||
message-property.cc | ||
message.cc | ||
messages.c | ||
notmuch-private.h | ||
notmuch.h | ||
notmuch.sym | ||
open.cc | ||
parse-time-vrp.cc | ||
parse-time-vrp.h | ||
prefix.cc | ||
query-fp.cc | ||
query-fp.h | ||
query.cc | ||
regexp-fields.cc | ||
regexp-fields.h | ||
sha1.c | ||
string-list.c | ||
string-map.c | ||
tags.c | ||
thread-fp.cc | ||
thread-fp.h | ||
thread.cc |