summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArun Isaac2023-06-01 23:18:18 +0100
committerArun Isaac2023-06-01 23:18:50 +0100
commitedb4668735704b01b2f974066e6d0515fa9738af (patch)
tree0505d87dfc5810d854d4492230d62d4e343bce06
parenta27c859b3d0c2e9891052125bd2087e290c7f7db (diff)
downloadgn-gemtext-edb4668735704b01b2f974066e6d0515fa9738af.tar.gz
issues: Rebuild xapian index conditionally.
-rw-r--r--issues/make-xapian-index-rebuild-conditional-on-database-checksums.gmi13
1 files changed, 13 insertions, 0 deletions
diff --git a/issues/make-xapian-index-rebuild-conditional-on-database-checksums.gmi b/issues/make-xapian-index-rebuild-conditional-on-database-checksums.gmi
new file mode 100644
index 0000000..decc02e
--- /dev/null
+++ b/issues/make-xapian-index-rebuild-conditional-on-database-checksums.gmi
@@ -0,0 +1,13 @@
+# Make xapian index rebuild conditional on database checksums
+
+* assigned: arun
+
+Currently, we unconditionally rebuild the xapian index once every day regardless of whether the database has actually changed over the last day. Not only is this computationally wasteful, but it also means that we cannot respond to database updates quickly enough.
+
+We need to be rebuilding the xapian index only when the database changes. Here's how:
+
+* [x] Lock the xapian index being built so that two build jobs do not run simultaneously.
+* [x] Register database table checksums in the xapian index.
+* [ ] Trigger an index rebuild only when the checksums have changed.
+
+Only task 3 remains. Most of the code for task 3 is done. But, it depends on guile-dbi, and unfortunately, the Guix guile-dbi package only builds with guile-2.2; it does not build with guile-3.0. Hopefully, the fix is simple. Fingers crossed.