After Action Hooks

Drew Morris drewmorris at
Sun Sep 12 10:57:47 EDT 2004

After recieving an email from another member of this list (thanks
Ken), I figured I needed to clarify a little.

Although Cyrus cache's some data, The cache I am talking about
maintaining is on a completely different machine. It's actually a
database which has the meta-data in it in order to improve web-based
email performance. All the existing solutions either don't scale well
or are too slow so we are attempting to keep the mailbox reads and
things that can be sped up considerably kept in the db and only access
the actual message store when someone needs to read a message or
perform an action (like move, delete, etc.)

I had another thought. Is it possible to add a hook for whatever
actions occur around updating the current cache that Cyrus stores
(cyrus.index and cyrus.cache)? I am not sure if these files also store
the folder information so I guess I am not sure if the file's
information is comprehensive enough. Also I am unsure whether these
are stored as one giant file or if they are seperated into each
folder's index.

If anyone out there has examples of these files and is willing to send
them I would appreciate it.

- Drew 

On Sat, 11 Sep 2004 17:18:40 -0400, Ken Murchison <ken at> wrote:
> Drew Morris wrote:
> > Hello all,
> >
> > I was wondering if it would be possible to add after action hooks into
> > Cyrus-IMAP/POP so that upon any change to a mailbox (folder move,
> > folder rename, folder deletion, message addition, message deletion,
> > message move, etc.) I would be able to fire an action like a perl
> > script or some other program. The script would need to know which user
> > this was performed on, the command, the element type (folder or
> > message), and the unique ID of the element. This feature would be
> > extremely useful for mail automation.
> >
> > In my case, I want to mainain a cache of message metadata that is kept
> > in synch with the Cyrus message store pro-actively without having to
> > keep calling synch functions on each mailbox. The idea would be for
> > these "after action hooks" to fire off an asynchronous process that
> > would be able to update the cache so that if a user looked at the
> > cache they would see an up-to-date version of their data.
> Is this cache on the same machine, or different machine?
> If you're trying to cache data to improve performance, don't bother.
> Cyrus already maintains a cache of message metadata for each mailbox in
> cyrus.index and cyrus.cache.  The full message file is only read when
> part of the body or some obscure header is requested.
> --
> Kenneth Murchison     Oceana Matrix Ltd.
> Software Engineer     21 Princeton Place
> 716-662-8973 x26      Orchard Park, NY 14127
> --PGP Public Key--
Cyrus Home Page:
Cyrus Wiki/FAQ:
List Archives/Info:

More information about the Info-cyrus mailing list