notmuch/lib
David Bremner e2a3e5fa51 lib: autocommit after some number of completed transactions
This change addresses two known issues with large sets of changes to
the database.  The first is that as reported by Steven Allen [1],
notmuch commits are not "flushed" when they complete, which means that
if there is an open transaction when the database closes (or e.g. the
program crashes) then all changes since the last commit will be
discarded (nothing is irrecoverably lost for "notmuch new", as the
indexing process just restarts next time it is run).  This does not
really "fix" the issue reported in [1]; that seems rather difficult
given how transactions work in Xapian. On the other hand, with the
default settings, this should mean one only loses less than a minutes
worth of work.  The second issue is the occasionally reported "storm"
of disk writes when notmuch finishes. I don't yet have a test for
this, but I think committing as we go should reduce the amount of work
when finalizing the database.

[1]: id:20151025210215.GA3754@stebalien.com
2021-06-27 14:03:00 -03:00
..
add-message.cc Merge branch 'release' 2021-05-22 09:34:55 -03:00
built-with.c build: drop support for xapian versions less than 1.4 2020-04-23 21:28:45 -03:00
config.cc lib/config: add NOTMUCH_CONFIG_AUTOCOMMIT 2021-06-27 13:59:42 -03:00
database-private.h lib: autocommit after some number of completed transactions 2021-06-27 14:03:00 -03:00
database.cc lib: autocommit after some number of completed transactions 2021-06-27 14:03:00 -03:00
directory.cc lib: run uncrustify 2021-03-13 08:45:34 -04:00
features.cc lib: run uncrustify 2021-03-13 08:45:34 -04:00
filenames.c lib: convert notmuch_bool_t to stdbool internally 2017-10-09 22:27:16 -03:00
index.cc lib: make glib initialization thread-safe 2021-05-13 22:21:57 -03:00
indexopts.c lib: run uncrustify 2021-03-13 08:45:34 -04:00
init.cc lib: make glib initialization thread-safe 2021-05-13 22:21:57 -03:00
Makefile fix sum moar typos [build scripts, Makefiles] 2011-06-23 15:44:59 -07:00
Makefile.local lib: make glib initialization thread-safe 2021-05-13 22:21:57 -03:00
message-file.c lib: make glib initialization thread-safe 2021-05-13 22:21:57 -03:00
message-id.c lib: run uncrustify 2019-06-14 07:41:27 -03:00
message-private.h lib: convert notmuch_bool_t to stdbool internally 2017-10-09 22:27:16 -03:00
message-property.cc lib: run uncrustify 2021-03-13 08:45:34 -04:00
message.cc lib/message: use passed database for error handling 2021-06-05 15:41:28 -03:00
messages.c lib: run uncrustify 2019-06-14 07:41:27 -03:00
notmuch-private.h lib: make glib initialization thread-safe 2021-05-13 22:21:57 -03:00
notmuch.h lib/config: add NOTMUCH_CONFIG_AUTOCOMMIT 2021-06-27 13:59:42 -03:00
notmuch.sym build: switch to hiding libnotmuch symbols by default 2017-05-12 07:17:18 -03:00
open.cc lib: autocommit after some number of completed transactions 2021-06-27 14:03:00 -03:00
parse-time-vrp.cc lib: run uncrustify 2021-03-13 08:45:34 -04:00
parse-time-vrp.h lib: migrate from Xapian ValueRangeProcessor to RangeProcessor 2020-07-11 17:20:09 -03:00
prefix.cc lib: run uncrustify 2021-03-13 08:45:34 -04:00
query-fp.cc build: drop support for xapian versions less than 1.4 2020-04-23 21:28:45 -03:00
query-fp.h build: drop support for xapian versions less than 1.4 2020-04-23 21:28:45 -03:00
query.cc lib: run uncrustify 2019-06-14 07:41:27 -03:00
regexp-fields.cc build: drop support for xapian versions less than 1.4 2020-04-23 21:28:45 -03:00
regexp-fields.h build: drop support for xapian versions less than 1.4 2020-04-23 21:28:45 -03:00
sha1.c lib: run uncrustify 2019-06-14 07:41:27 -03:00
string-list.c lib: run uncrustify 2019-06-14 07:41:27 -03:00
string-map.c lib: run uncrustify 2021-03-13 08:45:34 -04:00
tags.c Use https instead of http where possible 2016-06-05 08:32:17 -03:00
thread-fp.cc lib: run uncrustify 2021-03-13 08:45:34 -04:00
thread-fp.h build: drop support for xapian versions less than 1.4 2020-04-23 21:28:45 -03:00
thread.cc lib/thread: add common prefix to debug messages, join lines 2021-05-23 08:01:38 -03:00