Prepending Xapian Tiers

Bron Gondwana brong at
Mon May 20 04:52:07 EDT 2019

On Fri, May 17, 2019, at 23:52, Дилян Палаузов wrote:
> Hello,
> I set up a Cyrus system with one tier. I think it works. The .xapianactive files contain 'tiername: 0'.
> How can I insert a second tier?

I have never tried this on a live server! Clearly the right thing to do is to build a cassandane search which implements doing this so that we can make sure it works.

> Adding a XYZsearchpartition-default to imapd.conf, together with defaultsearchtier: XYZ does not utilize the new directory: it stays empty and the .xapianactive files do not get updated to mention the new tier.

That looks like it should work. I assume you have restarted your cyrus since making the change? I'm not certain that a rolling squatter will discover a new config in the way that imapd does.

Also - you'll need to run squatter in compact mode in order to add a new xapianactive entry. The simplest could be:

squatter -z tiername -t tiername -o

I believe that given your current setup, this will just copy the entry from tiername:0 to tirename:1 and also create XYZ:0 in the xapianactive file at the same time.

> Besides, if a message is MOVEd over IMAP, is any optimization utilized, to avoid reindexing the message, but just change the address of the document?

Yes, both XAPINDEXED mode where the GUID is read from xapian, and CONVINDEXED mode where the GUID is looked up via user.conversations and then mapped into the cyrus.indexed.db files in each xapian tier allow Xapian to skip reindexing when a message is already indexed. This works for both MOVE and for re-uploading of an identical message file via IMAP.



 Bron Gondwana, CEO, FastMail Pty Ltd
 brong at

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the Cyrus-devel mailing list