Sabahattin Gucukoglu via Courier-imap writes:

> All of that is somewhat analogous to CONDSTORE's sequence numbers. Except that, from what I can tell, the server must maintain a complete history of all changes to the mailbox, in order to support CONDSTORE+QRESYNC. This seems completely unnecessary itself, too onerous, and it misses the mark entirely. The server only needs to maintain a single per-client snapshot (with the next most recent backup snapshot), identified by a single opaque handle.

OK, so I will be looking at it, but could this infrastructure be reused? If you were to permit the saving of an indefinite number of snapshots (up to some specified time limit), without reference to any particular client, and store the snapshots into easily looked-up files in a directory, then whenever a client references a MODSEQ, it would be an easy matter to reply accordingly with the changes. How expensive is creating a snapshot? Is it done by request of the client, or every time there’s a change? After all, if you are OK with keeping this additional state, then perhaps it’s not such a tough battle.

No that is not reusable, for a couple of reasons. Because, again, CONDSTORE requires an entire infrastructure that revolves around monotonously increasing sequence numbers. Nothing, with regards to client/server resynchronization, uses or needs any sequence numbers.

Anything that involves a monotonous sequence number rubs against the grain of concurrent processes, all using the same mail store. Like what IMAP allows. Using a sequence number to identify messages in a folder, with a strict requirement that it's monotonous, is bad enough. CONDSTORE just adds to the badness. Monotonous, strictly increasing sequence numbers, are not welcome in the age of parallel, concurrent computing. The same mail store could be, for example, accessible by multiple servers, with both of them accessing the same mail folder. And the independent processes on those servers are expected to, somehow, coordinate their ticking of the same sequence number.

Implementing IMAP, as is, was a small miracle. One miracle is enough.

Finally, the snapshots in question are snapshots of the entire folder. and are not just some individual, single token. Which is fine, since the resynchronization algorithm only needs the two most recent snapshots, to guarantee resynchronization. CONDSTORE requires everything to be kept forever. Saving the complete list of messages any time something changes is going to get real old, real fast.

In my previous message I alluded that CONDSTORE "is a perfect IMAP extension, that exhibits the same underlying problems that IMAP itself has". I hope the above clarifies that.

Attachment: pgpIO0ct4eD2d.pgp
Description: PGP signature

_______________________________________________
Courier-imap mailing list
Courier-imap@lists.sourceforge.net
Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-imap

Reply via email to