experimental logging branch

Subject: experimental logging branch

Date: Sat, 10 Dec 2011 23:27:02 -0400

To: Notmuch Mail

Cc:

From: David Bremner


I have pushed a branch jlog 

  git://pivot.cs.unb.ca/notmuch.git

This uses the jlog library (http://labs.omniti.com/labs/jlog)
to atomically log messages in pub-sub model.

On this branch you can enable logging of tagging operations by 

   notmuch config set log.subscribers 'name1;name2;name3'

the "subscriber names" identify clients (one could imagine one client
deals with general tag syncing, another with nmbug, or so).
  
One can read the log via the jlog api (there are perl bindings) or via
the "notmuch log" command. 

    notmuch log name1 

will print all of the log messages since the last time the queue was
read.

for e.g., tag removal, these lines look like

T-1322702130-26068-3-git-send-email-bremner@debian.org test
T-1322702130-26068-1-git-send-email-bremner@debian.org test
T-7fbe6befcf31881a9bca672f55b93501249a220c.1322859389.git.jani@nikula.org test
T-716da00e176e1dc6af0ba248caee40acee733120.1322859389.git.jani@nikula.org test

An example application would be a cron job that writes all tag changes
to some nmbug like git repo.

There are a few rough edges and I expect to rebase the branch a bit
more, but feel free to have a look at it.  I guess I'm curious if people
think jlog is an acceptable dependency, and whether the whole logging
thing seems worthwhile. 

I did some preliminary tests, and for adding or deleting a tag to 200k
messages, this added about a 5% time penalty. I didn't notice any really
heavy I/O (no SSD here, but i7 cpu). Tests were roughly 95% CPU bound.

There are some preliminary debian packages for jlog at 

      git://pivot.cs.unb.ca/jlog.git

The upstream source for jlog is at 
    
    https://github.com/omniti-labs/jlog



part-000.sig (application/pgp-signature)

Thread: