After Action Hooks

Ken Murchison ken at
Mon Sep 13 07:46:46 EDT 2004

Drew Morris wrote:
> 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.

> 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:

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