git master branch going unstable
murch at andrew.cmu.edu
Mon Jan 17 16:29:25 EST 2011
You and Greg might want to discuss your idea(s) with the MORG WG. They
have been working on similar things for a while and might be able to
give you some direction, or at least steer you away from things that
they have deemed as bad.
Bron Gondwana wrote:
> (I hope you don't mind me CC'ing this back to the list so everyone
> can read it!)
> On Tue, Jan 11, 2011 at 04:58:06PM +0000, Alexey Melnikov wrote:
>> Hi Bron,
>> Bron Gondwana wrote:
>>> Actually - it's been unstable for a few days now since I added the
>>> "specialuse" patches
>> I meant to ask earlier: is there a public list of things that you
>> are planning in 2.5? In particular I am interested in knowing which
>> IMAP extensions you and your co-workers are planning to add.
> We should really discuss them on cyrus-devel and the IRC channel.
> We've been quite lax about that :(
> Do you have any particular extentions you're interested in?
>>> * conversations (cross folder thread) initial support from Greg
>> Do you have a pointer to how this works/what does this do?
> No - we'll have to write something up on this. It's going to be
> a non-standard extention to start off with. Hopefully once we've
> ironed out the details we can write an RFC.
> Basically it (Greg, correct me if I've messed anything up here...):
> *) adds a 64 bit "cid" (conversation id) to each index record.
> *) adds a separate database (per user) which contains a map of
> message-id header to cid.
> *) for each appended message, gets every "message-id" from the
> message header (Message-Id, In-Reply-To, References) and looks
> them up in the conversations database.
> *) if a related message is found, it keeps the same cid. If
> no related message is found, it allocates a "random" cid
> (first 64 bits of the sha1 of the current message in fact)
> *) SPECIAL CASE: if TWO SEPARATE cids are found then we have
> a message which links two previously separate conversations.
> In this case, bias upwards - choose the higher cid and re-number
> all the messages with the lower cid.
> (the same renumbering logic will be used by replication to merge
> different cids from different ends)
> There's a bit more magic to do with remembering which folders
> are "touched" by each conversation to make the implementation more
> efficient. And of course making reconstruct work, and able to
> repair a damaged conversations database.
> We're about here now. The next step is defining a good interface to
> access this data :)
> In particular, there's a few things we need:
>>From Folder/UidValidity/Uid triplet - get a conversation ID.
>>From a triplet or a conversation ID - get a list of all "related"
> messages (those with the same conversation ID) across ALL folders
> belonging to the same user.
> SEARCH - within a conversation
> SORT - within a conversation
> Kind of somewhat separately, we want some form of sorted search
> windowing... where you can say "give me the first 10 messages which
> match this search within this sort - and it will sort the messages
> (efficient) first and then apply the search (usually more expensive)
> to each message until it's found enough matches - then return!
> At the moment it always searches first, then sorts the search results,
> which can be very expensive for a body search across all folders -
> which is what customers often want, funnily enough.
Principle Systems Software Engineer
Carnegie Mellon University
More information about the Cyrus-devel